Giropay

Start accepting payments using Giropay, a favorite payment method in Germany.

Giropay provides a method to make purchases online through quick and easy bank transfers that are not only secure but guaranteed.

📘

To start accepting Giropay payments, please contact your customer success manager.

Process a Giropay payment

Giropay payments follow a two-step process:

  1. Request a Giropay payment
  2. Redirect the customer

Step 1: Request a Giropay payment

The request

Use the details below to set up your request.

Endpoints

Live

https://api.checkout.com/payments

Sandbox

https://api.sandbox.checkout.com/payments

Header parameters

Header

Value

Authorization Required

secret key

Use the valid secret key of your Checkout.com account. You can find this in the Hub.

Content-Type\ Required

application/json

Body parameters

📘

The table below describes the minimum recommended fields. You can find the full list, as well as complete request and response examples, in our API reference.

Field name

Description

source Object required

Details about the payment source.

source.type\ String\ required

The type of payment source. Set this to giropay.

source.bic\ String\ optional

The 8- or 11-character bank identifier code (BIC). If you want to test this in the sandbox environment, set the value to "TESTDETT421"\ If you include this, your payment will follow an alternative flow.

source.purpose\ String\ required

A description of the payment.\ Maximum characters: 27

amount\ Integer\ required

The payment amount.

currency\ String\ required

The three-letter ISO currency code. Set this to EUR.

success_url\ String\ Optional

For redirect payment methods, overrides the default success redirect URL configured on your account.

failure_url\ String\ Optional

For redirect payment methods, overrides the default failure redirect URL configured on your account.

Request example

{
  "source": {
    "type": "giropay",
    "purpose":"Mens black t-shirt L"
  },  
 "amount": 1914,
 "currency": "EUR",
 "success_url": "http://example.com/payments/success",
 "failure_url": "http://example.com/payments/fail"
}

📘

If a customer ID or email is not provided in the request, then we automatically create a customer profile and return the customer id in the response.

The response

If you receive a 202 Success response containing a status field set to Pending, then your request was successful.

Response example

{
  "id": "pay_d3ohhwwu3qderfjlzitknc26sq",
  "status": "Pending",
  "customer": {
    "id": "cus_hfgq4ctsnr6e3cfhq5ctwb5gtu"
  },
  "_links": {
    "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_d3ohhwwu3qderfjlzitknc26sq"
    },
    "redirect": {
      "href": "https://ftg-customer-integration.giropay.de/ftgbank/b/bankselection/219499703994809788;jsessionid=8ECFE1809F9BAB6635EC9D37D98A1CAE.sf-testapp01tom21?op=001"
    }
  }
}

Step 2: Redirect the customer

Redirect your customer to the redirect link’s href in the response. This will send them to a Giropay bank selection page where they will select their bank before being transferred to that bank's page to enter their authorization details. If successful, the payment can be approved.

Once they've completed this step, the customer is transferred to your predefined success or failure URL. Confirmation of a Giropay payment is communicated only through webhooks. When you receive a payment_captured webhook notification, the transaction has been completed successfully. Until the payment_captured webhook is received (response code 10000), all payments are labeled as Pending.

Alternative flow: Including the BIC

If you include the BIC in your request, the payment will follow a slightly different flow.

Response example

If your request is successful, you'll receive a response like the following (note the different redirect URL):

{
  "id": "pay_iilqeu2rsdqedkvkjhl2rxgbvy",
  "status": "Pending",
  "customer": {
    "id": "cus_xtmverdclvfuhjuqjwduqeuqnu",
  },
  "_links": {
    "redirect": {
      "href": "https://ftg-customer-integration.giropay.de/ftg/b/go/07i2i1k00pp1tkapcdoy3bo3;jsessionid=3EEF88674DADC7A4FC117BB39E770269.sf-testapp02tom23"
    },
    "self": {
      "href": "http://api.checkout.com/payments/pay_iilqeu2rsdqedkvkjhl2rxgbvy"
    }
  }
}

Redirect the customer

Unlike the standard payment flow detailed above, the redirect link’s href will send your customer directly to their bank's website where they need to enter their authorization details. If successful, the payment can be approved.

After that, the flow is the same: the customer will be sent to your predefined success or failure URL, and you can get confirmation of the payment via webhooks.

Get details about a Giropay payment

You can retrieve details about an existing Giropay payment.

The request

Use the details below to set up your request.

Endpoint

Live

GEThttps://api.checkout.com/payments/{payment_id}

Sandbox

GEThttps://api.sandbox.checkout.com/payments/{payment_id}

Header and path parameters

Header

Value

Authorization Required

secret key

Use the valid secret key of your Checkout.com account. You can find this in the Hub.

Content-Type\ Required

application/json

Path

Value

payment_id Required

The payment ID found in the response of the initial payment.

The response

Response example

{
  "id": "pay_iilqeu2rsdqedkvkjhl2rxgbvy",
  "created_on": "2018-03-28T14:50:26Z",
  "source": {
    "type": "giropay",
    "purpose": "Set of three masks",
    "bic": "TESTDETT421",
    "iban": "DE46940594210000012345",
    "account_holder": "Test GmbH & Co. KG"
  },
  "amount": 1914,
  "currency": "EUR",
  "payment_type": "Regular",
  "status": "Captured",
  "flagged": false,
  "_links": {
    "self": {
      "href": "http://api.checkout.com/gateway/payments/pay_iilqeu2rsdqedkvkjhl2rxgbvy"
    }
  }
}

Refund a Giropay payment

Giropay supports both partial and full refunds. You can refund a payment through the Hub or using the refund API.

Cancel a Giropay payment

If the customer fails to complete their payment, we will automatically void the payment and send a payment_expired webhook.
If the customer cancels their payment, we will send payment_canceled webhook.

Get a list of supported banks

You can use this request to get an up-to-date list of all banks supporting Giropay payments.

The request

Use the details below to set up your request.

Endpoints

Live

GEThttps://api.checkout.com/giropay/banks

Sandbox

GEThttps://api.sandbox.checkout.com/giropay/banks

Header parameters

Header

Value

Authorization Required

public key

Use the valid public key of your Checkout.com account. You can find this in the Hub.

The response

Response example

{
  "_links": {
    "self": {
      "href": "https://api.checkout.com/giropay/banks"
    }
  },
  "banks": {
    "BELADEBEXXX": "Landesbank Berlin - Berliner Sparkasse",
    "BEVODEBBXXX": "Berliner Volksbank",
    "GENODEF1P01": "PSD Bank Berlin-Brandenburg",
    "WELADED1WBB": "Weberbank",
    "BYLADEM1001": "Deutsche Kreditbank Berlin"
  }
}

Testing Giropay

🚧

To start testing, you'll need to:

  • create a test account, and
  • contact your customer success manager or integrations engineer to activate Giropay payments in the sandbox environment.
  1. Create a Giropay transaction as above, following the redirect link in the response to Giropay's bank selection page. (If you follow the alternative flow and include the BIC in your request, you will go straight to the bank's page.)

  2. Select the bank ("Wählen Sie Ihre Bank aus"):
      -   BIC: TESTDETT421
      -   Name: Sparkasse Testinstitut-421 94059421 TESTDETT421

  3. Click "Weiter zu meiner Bank" and await redirection to the bank's page.

  4. Log in with the following details:
      -   Anmeldename oder Legitimations-ID: chiptanscatest2
      -   PIN: 12345

  5. Click "Jetzt bezahlen" to continue.

  6. Scroll to the end of the next page, select "Optischer TAN" and then click "Jetzt bezahlen".

  7. Scroll to the end of the next page, enter "123456" in the TAN field and click "Login".

  8. On the next page, click "Weiter".

  9. You will then again need to enter "123456" in the TAN field before clicking "Jetzt bezahlen".

  10. You should then be redirected to your predefined success URL.

Can we help?

Thanks for using Checkout.com. If you need any help or support, then message our support team at [email protected].