giropay

REST API

giropay is a type of Online Bank Transfer.

Countries and Currencies

Countries

Germany

Currencies

EUR

Communication Formats

This table illustrates how giropay notifications are encoded and which formats and methods can be used for requests and responses.

Requests/Responses

Format

XML, NVP

Methods

POST, GET

IPN Encodement

Please follow the instructions given at Instant Payment Notification to set up IPN.

Transactions
Transaction Types

For transaction type details look at Transaction Types.

Transaction Type Description Link to the Sample

get-url

A step in a group of transactions where the provider or bank’s URL is retrieved for the Account Holder to be redirected to.

See samples.

debit

Moves funds from the Account Holder to the merchant. Received as payment notification.

See samples.

Reference Transaction
For additional information regarding the referenced transaction functionality, see here: Cross-Payment-Methods Referencing.
Test Credentials

URLs (Endpoints)

https://api-test.wirecard.com/engine/rest/paymentmethods/

Merchant Account ID (MAID)

9b4b0e5f-1bc8-422e-be42-d0bad2eadabc

Username

16390-testing

Password

3!3013=D3fD8X7

Secret Key

0c8c6f3a-1534-4fa1-99d9-d1c644d43709

Additional Test Credentials on giropay Environment

customerName1

Paul Peterson

customerIBAN

DE12500105170648489890

Test Bank Account BIC

GENODETT488

Workflow
debit
The merchant sends a debit request to Wirecard and receives a response which contains the URL of the consumers online banking system to which the consumer must be redirected to. The consumer is redirected back to merchant’s shop after the transaction is approved, and the merchant receives a payment notification from Wirecard.
giropay Workflow
  1. Consumer adds items to his/her shopping basket.

  2. Consumer selects giropay.

  3. The merchant sends a get-url request to Wirecard Payment Gateway.

  4. Wirecard Payment Gateway processes and validates the transaction.

  5. Wirecard Payment Gateway forwards the request to giropay.

  6. giropay provides the URL of the consumer’s online banking account for payment verification.

  7. Wirecard Payment Gateway processes the response.

  8. Wirecard Payment Gateway redirects the consumer to the provided online banking URL.

  9. The consumer verifies the payment within the personal online banking system.

  10. giropay transfers funds from the consumer’s bank account to the merchant’s bank account.

  11. giropay sends a payment notification to the Wirecard Payment Gateway.

  12. Wirecard Payment Gateway processes the notification and sends the payment debit notification to the merchant.

  13. The merchant receives the notification with the payment result.

It is also possible to refund giropay transactions via SEPA Credit Transfer if the merchant’s business flow requires this.
Fields

The fields used for giropay requests, responses and notifications are the same as the REST API fields. Please refer to REST API Fields or the request example for the fields required in a debit transaction.

Only the fields listed below have different properties.

The following elements are mandatory (M), optional (O) or conditional (C) for a request/response/notification.

Field Cardinality Datatype Size Description

bank-account/bic

C

xs:string

15

One of BIC or bank-code must be provided, but not both.

bank-account/bank-code

C

xs:string

15

One of BIC or bank-code must be provided, but not both.

Samples
get-url/debit
XML
XML get-url Request (Successful)
<?xml version="1.0" encoding="utf-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
 <payment-methods>
  <payment-method name="giropay" />
 </payment-methods>
 <merchant-account-id>9b4b0e5f-1bc8-422e-be42-d0bad2eadabc</merchant-account-id>
 <request-id>4da09987-c808-4c40-bfd5-85e0f624276b</request-id>
 <transaction-type>get-url</transaction-type>
 <requested-amount currency="EUR">1.0</requested-amount>
 <order-number>180605125236138</order-number>
 <order-detail>Test product 001</order-detail>
 <ip-address>127.0.0.1</ip-address>
 <locale>en</locale>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@wirecard.com</email>
 </account-holder>
 <bank-account>
  <bic>GENODETT488</bic>
 </bank-account>
</payment>
XML get-url Response (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id>9b4b0e5f-1bc8-422e-be42-d0bad2eadabc</merchant-account-id>
 <transaction-id>1e0db2b9-6c6d-4180-8845-d56558eb34e1</transaction-id>
 <request-id>4da09987-c808-4c40-bfd5-85e0f624276b</request-id>
 <transaction-type>get-url</transaction-type>
 <transaction-state>success</transaction-state>
 <completion-time-stamp>2018-06-05T10:52:36.000Z</completion-time-stamp>
 <statuses>
  <status code="201.0000" description="The resource was successfully created." severity="information" />
 </statuses>
 <requested-amount currency="EUR">1.0</requested-amount>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@wirecard.com</email>
 </account-holder>
 <ip-address>127.0.0.1</ip-address>
 <order-number>180605125236138</order-number>
 <order-detail>Test product 001</order-detail>
 <payment-methods>
  <payment-method url="https://giropaytest1.fiducia.de/ShopSystem/bank/BankEntry?RZKZ=XC&amp;RZBK=8076&amp;redirectData=merchantId%3D8993370%26merchantTxId%3D1E0DB2B96C6D41808845D56558EB34E1%26txId%3DF000001ZRL%26shopEndFailureURL%3Dhttps%253A%252F%252Fapi-test.wirecard.com%253A443%252Fengine%252Fnotification%252Fgiropaygad%252Fredirect%252F1e0db2b9-6c6d-4180-8845-d56558eb34e1%252F%26operatorSignature%3DjiY5qRejuINgTZVIoYt7xXIfcq%252BEkyLRqRGhY3RIWtS1iuMzKasF%252FmSA2VFx7h7SRzT5QpMZ8y8oGgYeUIuQ43EPtMdtuRC2r6BQvwh26NmN1fv5e3hXXfcv2VzmJ3wgo%252Bc%252B18%252BUWE2%252B6WCKQINMRUpwn2YTPkJJCDltxpET5Qu7Iu9pUxXJedwZyTTB9vkKhwlp0AuZ5D7wvQ4ZnftGQeAf33LIwbd9MCoPpm3Dv6SVZna0wG20FUqYvThJnvnORsskmsCffuZfgp%252BjUpvuWedlVEWjh16EBWxHGuDP2gKpdg%252BSHnexmGHAOfjZgV%252BpNWGoNFaea6v1uG0c8bx9PA%253D%253D%26operatorId%3D002%26shopEndSuccessURL%3Dhttps%253A%252F%252Fapi-test.wirecard.com%253A443%252Fengine%252Fnotification%252Fgiropaygad%252Fredirect%252F1e0db2b9-6c6d-4180-8845-d56558eb34e1%252F" name="giropay" />
 </payment-methods>
 <bank-account>
  <bic>GENODETT488</bic>
 </bank-account>
 <locale>en</locale>
</payment>
XML debit Notification (Successful)
<?xml version="1.0" encoding="UTF-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id>46e10637-a14d-47d0-b8f2-bb8b9cf2aa52</merchant-account-id>
 <transaction-id>0c60aaa2-9caf-4a0e-a814-313eb6730043</transaction-id>
 <request-id>b7aa31ce-a8be-4622-a9e4-7e1052d60267</request-id>
 <transaction-type>debit</transaction-type>
 <transaction-state>success</transaction-state>
 <completion-time-stamp>2018-06-05T09:51:03.000Z</completion-time-stamp>
 <statuses>
  <status code="201.1126" description="giropay:Successful confirmation received from the bank." severity="information"/>
 </statuses>
 <requested-amount currency="EUR">1.0</requested-amount>
 <parent-transaction-id>18ad619c-539a-4ee2-a5de-660f9d404a73</parent-transaction-id>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@wirecard.com</email>
 </account-holder>
 <ip-address>127.0.0.1</ip-address>
 <order-number>180605114854891</order-number>
 <order-detail>Test product 001</order-detail>
 <payment-methods>
  <payment-method name="giropay"/>
 </payment-methods>
 <api-id>---</api-id>
 <locale>en</locale>
 <provider-transaction-reference-id>GIROPAY0028993370F000001ZQU</provider-transaction-reference-id>
 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
  <SignedInfo>
   <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
   <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
   <Reference URI="">
    <Transforms>
     <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
    <DigestValue>H9zNz076h9Gya8KMSaAEnJ2qHklPhhWg+pAC9wCTqgk=</DigestValue>
   </Reference>
  </SignedInfo>
  <SignatureValue>OeFEwh8K8n2lw0jl/MYoHA/ubNO1j/N1ouLK7bz/n0UD1wXSgkhsYBBQJWO7qjPs42b26E+yUn6EjnpePJUvzzvaKQCW1FgiQh8luQ/ITx8k2X/g1Yw+9tBxa5X41QNERSCzhEl1oZv8sBrxNqTE3Jwem9x22ptvET27siQ6NzL1+q+yxHyOPCvWZ54I4HoUyKl13eq3ArkkgbMMJG49V8VXQ3aYAcXqmnUFHufTPSukU1TPdsXQHQQxML/Ek8gclYhpLLjGYi1qoSXz5IQ7E95CuQl0la1LWddVDQ+WuokEEsfdWPtmlh3yUlC+6Q9Jjv584iGqvZPbcNXC083D5L6trOYgc7Z8Jl1N4ueB7IBg0TSXwvvq7Nt9rYycLyYW+zra/X5GWL3AgFnY5GLlZBqmRV5/mz5NPNvDDmSoznx6B8GCuMrg5g4/Gb8pWSIaATJJujcC5pXrCf28f8O3ahVtV2h5U29N4u+gj8oZRmW/R/GHzNGn6G3Fxa3amLwHQObYhlhnNUzcXwb0A5MzbSkXOECkzn7Y8QkHZcnx/Lk45fXmXmohKjNn7b7OKxrBChBhEKomdkSjzdncI3UNNxxiIU2SV6d3fSXjAQJ8yctuoaDFTah8PCKiGPxmxUhryyyXqoarx0SueuR1AW8oh2hbHQp8e8QDQWhck5/nV1A=</SignatureValue>
  <KeyInfo>
   <X509Data>
    <X509SubjectName>L=Ascheim,2.5.4.4=#130642617965726e,CN=api-test.wirecard.com,OU=Operations,O=Wirecard Technologies GmbH,C=DE</X509SubjectName>
    <X509Certificate>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</X509Certificate>
   </X509Data>
  </KeyInfo>
 </Signature>
</payment>
XML get-url Request (Failure)
<?xml version="1.0" encoding="utf-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
 <payment-methods>
  <payment-method name="giropay" />
 </payment-methods>
 <merchant-account-id>9b4b0e5f-1bc8-422e-be42-d0bad2eadabc</merchant-account-id>
 <request-id>46a60198-2062-49ed-a36c-7f070b9f4b45</request-id>
 <transaction-type>get-url</transaction-type>
 <requested-amount currency="EUR">1.0</requested-amount>
 <order-number>180605125116611</order-number>
 <order-detail>Test product 001</order-detail>
 <ip-address>127.0.0.1</ip-address>
 <locale>en</locale>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@wirecard.com</email>
 </account-holder>
 <bank-account>
  <bic>TESTBIC</bic>
 </bank-account>
</payment>
XML get-url Response (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
 <merchant-account-id>9b4b0e5f-1bc8-422e-be42-d0bad2eadabc</merchant-account-id>
 <transaction-id>b1ebb3d7-16de-45c0-adc9-80b02ae3340b</transaction-id>
 <request-id>46a60198-2062-49ed-a36c-7f070b9f4b45</request-id>
 <transaction-type>get-url</transaction-type>
 <transaction-state>failed</transaction-state>
 <completion-time-stamp>2018-06-05T10:51:16.000Z</completion-time-stamp>
 <statuses>
  <status code="400.1197" description="BIC is invalid." severity="error" />
 </statuses>
 <requested-amount currency="EUR">1.0</requested-amount>
 <account-holder>
  <first-name>John</first-name>
  <last-name>Doe</last-name>
  <email>john.doe@wirecard.com</email>
 </account-holder>
 <ip-address>127.0.0.1</ip-address>
 <order-number>180605125116611</order-number>
 <order-detail>Test product 001</order-detail>
 <payment-methods>
  <payment-method name="giropay" />
 </payment-methods>
 <bank-account>
  <bic>TESTBIC</bic>
 </bank-account>
 <locale>en</locale>
</payment>
NVP
NVP get-url Response (Successful)
 HTTP/1.1 201 Created
 Server: Apache-Coyote/1.1
 Content-Language: en-US
 Content-Length: 1644
 Date: Wed, 21 Oct 2015 18:36:42 GMT


order_number=15957&payment_method_url=https%3A%2F%2Fgiropaytest1.fiducia.de%2FShopSystem%2Fbank%2FBankEntry_v2%3FRZKZ%3DXC%26RZBK%3D8076%26redirectData%3DmerchantId%253D8993370%2526merchantTxId%253DAC7090A9782211E5923A00163E1F53EB%2526txId%253DF00000FBCP%2526shopEndFailureURL%253Dhttps%25253A%25252F%25252Fdev.thesolution.com%25252Fengine%25252Fnotification%25252Fgiropaygad%25252Fredirect%25252Fac7090a9-7822-11e5-923a-00163e1f53eb%25252F%2526operatorSignature%253DAxwVt0bxn4voDEXZIXWGNImFuhBU1Ez6B%25252BeFE38UbbANqYPocGLkmkSTRFNqeyfShaVxZpW081IxFFh%25252B7AzCiOZ5B7B%25252FXV2GQmvWXpE5DlPnuZZYwVC4QrdH0H40XRM7NNZ2IJsor9PGePAInVhfZFZVBEq5MtZcUYZd%25252FstYWrbzD2QrlEB7Ddlopmuo8uHM8H07VbdiOw46Znx0X8kxZ%25252BaoEjDv7iUESuhROJsKK0o%25252Foy%25252BzrqCq6hPnQekXEz43OUyfZB%25252BFKdjGzFW3fjSF4Jilw1Hzzdy1MstnZIIWS6hANalp%25252FyB2%25252FDMso7tDhh9n3uNxTuLsu2tuerauhVLbIQ%25253D%25253D%2526operatorId%253D002%2526shopEndSuccessURL%253Dhttps%25253A%25252F%25252Fdev.thesolution.com%25252Fengine%25252Fnotification%25252Fgiropaygad%25252Fredirect%25252Fac7090a9-7822-11e5-923a-00163e1f53eb%25252F&transaction_type=debitget-url&locale=en&completion_time_stamp=20151021183642&status_code_1=201.0000&status_severity_1=information&transaction_state=success&transaction_id=ac7090a9-7822-11e5-923a-00163e1f53eb&first_name=John&merchant_account_id=ec68950e-1ffa-4bec-9218-792dc77a5109&ip_address=127.0.0.1&bank_account_bic=GENODETT488&order_detail=TestProduct&request_id=demo-123400&requested_amount=1.01&requested_amount_currency=EUR&email=john.doe%40wirecard.com&status_description_1=The+resource+was+successfully+created.&last_name=Doe&payment_method=giropay&
NVP get-url Request (Successful)
 POST http://10.0.0.114:8080/engine/rest/paymentmethods/ HTTP/1.1
 Accept-Encoding: gzip,deflate
 Content-Type: application/x-www-form-urlencoded;charset=UTF-8
 Authorization: Basic dGVhbWNpdHk6dGVhbWNpdHk=
 Accept: text/plain
 Content-Length: 339
 Host: 10.0.0.114:8080
 Connection: Keep-Alive
 User-Agent: Apache-HttpClient/4.1.1 (java 1.5)


merchant_account_id=ec68950e-1ffa-4bec-9218-792dc77a5109&request_id=demo-123400&transaction_type=get-url&requested_amount_currency=EUR&requested_amount=1.01&first_name=John&last_name=Doe&email=john.doe@wirecard.com&order_number=15957&order_detail=TestProduct&locale=en&ip_address=127.0.0.1&payment_method=giropay&bank_account_bic=GENODETT488
NVP debit Notification (Successful)
 X-Request-Id: 78c0f284-d5e4-4c77-8363-5eba5069f815
 Total-Route-Time: 0
 Connect-Time: 4
 Payment.Request-Id: 4f99be5c-af8c-4eda-ae90-20dc10a97dc9
 Notification.Url: http://requestb.in/145yq7s1
 Host: requestb.in
 Breadcrumbid: ID-dev-app-n01-49221-1445441419984-0-6906
 Via: 1.1 vegur
 Content-Length: 4640
 Connection: close
 Content-Type: text/plain
 Payment.Transaction-Id: 2da8e73f-7828-11e5-923a-00163e1f53eb
 <?xml version="1.0" encoding="UTF-8"?>
 <payment xmlns="http://www.elastic-payments.com/schema/payment">
 <merchant-account-id>ec68950e-1ffa-4bec-9218-792dc77a5109</merchant-account-id>
 <transaction-id>2da8e73f-7828-11e5-923a-00163e1f53eb</transaction-id>
 <request-id>4f99be5c-af8c-4eda-ae90-20dc10a97dc9</request-id>
 <transaction-type>debit</transaction-type>
 <transaction-state>success</transaction-state>
 <completion-time-stamp>2015-10-21T19:16:06.000Z</completion-time-stamp>
 <statuses>

 <status code="201.1126" description="giropay:Successful confirmation
 received from the bank." provider-transaction-id="F00000FBDC"
severity="information"/>
 </statuses>
 <requested-amount currency="EUR">1.0</requested-amount>
 <account-holder>
 <first-name>John</first-name>
 <last-name>Doe</last-name>
 <email>john.doe@wirecard.com</email>
 </account-holder>
 <ip-address>127.0.0.1</ip-address>
 <order-number>17622</order-number>
 <order-detail>Test product 001</order-detail>
 <notifications>
 <notification url="http://requestb.in/145yq7s1"/>
 </notifications>
 <payment-methods>
 <payment-method name="giropay"/>
 </payment-methods>
 <api-id>---</api-id>
 <provider-transaction-reference-id>GIROPAY0028993370F00000FBDC</provider-transaction-reference-id>
 <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
 <SignedInfo>
 <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
 <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
 <Reference URI="">
 <Transforms>
 <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
 </Transforms>
 <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
 <DigestValue>GA3lgrihlMT0is0alqTlXnh3MAQ=</DigestValue>
 </Reference>
 </SignedInfo>
 <SignatureValue>afLVd67OjoTEJ2VbNqaG84baQQheFKekNan5db4jXjsGAwXlYa1rWzn0koGsK4LVPtgt1EHZjdRo
 9JhcLX4Qd+KrXW8zh35MffSlMm3JnbkTLDRL+Y8uLpGGhuH3eBolITz1ml0mft7POkwWefrhjLcj
 TZmaumSpvF6FTMnJyS3j+vog9+3rE/2xYXfXabSg0IytNv1dR3oIkWafFUVMIk50s67f1LX2z1Yz
 ywo6c9EKVXUhwcAa7R4h59izkrLumA15eS1wFV0jbDtcYjwNBcpYa7S1TcybyrDVpyO27VTRpzOl
 LgEUJuka9kHbBgMxDizwKFAvbkn+Gk6OjIr+bg==</SignatureValue>
 <KeyInfo>
 <X509Data>
 <X509SubjectName>CN=Manoj Sahu,OU=Operations,O=Wirecard Elastic Payments,L=Toronto,ST=ON,C=CA</X509SubjectName>
 <X509Certificate>MIIDcDCCAligAwIBAgIETgQWGTANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJDQTELMAkGA1UE
 CBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xIjAgBgNVBAoTGVdpcmVjYXJkIEVsYXN0aWMgUGF5bWVu
 dHMxEzARBgNVBAsTCk9wZXJhdGlvbnMxEzARBgNVBAMTCk1hbm9qIFNhaHUwHhcNMTEwNjI0MDQ0
 NDA5WhcNMTQwMzIwMDQ0NDA5WjB6MQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcT
 B1Rvcm9udG8xIjAgBgNVBAoTGVdpcmVjYXJkIEVsYXN0aWMgUGF5bWVudHMxEzARBgNVBAsTCk9w
 ZXJhdGlvbnMxEzARBgNVBAMTCk1hbm9qIFNhaHUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
 AoIBAQCc8rTt4N5fNeVzlsRgOXKDE2YUSfJx7xXBozFZ3Vh3XQyy3IpIuEfZz7004k4HeonfTxCN
 etBvJ9rgNc0Cxrk/euMj3pOUrE9WYN2eAXC0r5pUIAZhIAnSxUSaIF3JKBxf7gDAik5d8RT5HaJV
 4n5cXJQ/uhAEYU3EGN/74UrD2UsOYD3VBXTJS5VgSi/c3IyLwhDbYIyU6j4fMKyHIlAMGzW7VgKD
 2pqu6BRysqUVdEEAvW2OmyVqGVyPkm87EiHSMMSar3CvYYxYqBN2KBUjabkvnRWbIzyQuyUyDeUb
 QmhVQKL0WlMb5ev65m2VjGyDTGL5jfB14rSXRMGzeJ+LAgMBAAEwDQYJKoZIhvcNAQEFBQADggEB
 ADgkuN/e2IFy7JXdbjNJbKBd3HLvFvK87dv8qQ+HK4qfCxYXh6aYhbKHJSA6C2pbOD3HBXoyovZr
 mk/KqOyUL+unVcR+APjxX4KP25sdkplgmeQ47CWxtKAHZUTtWwAVI/WhsX89SSucBfIS5TJ54e7m
 02qvGoK8UA/IRbIQ6DZ9hEKV5VQKiMx3ubwwHGXfOWz2fKmeZBuTeY+HiTEH8KCHpfw2j8G+dDgU
 jlp9LvjVNmJzfNBBk1Si0d/rhXmMzVSKj08tp1sPRK0/sJtJZBzQajpnsZ9NFfoJNdG13AzYwDP3
 x/QspK0jYn1KZw1qz524VWoQoueR8Xj30A2jntA=</X509Certificate>
 </X509Data>
 </KeyInfo>
 </Signature>
 </payment>
NVP get-url Request (Failure)
 POST http://10.0.0.114:8080/engine/rest/paymentmethods/ HTTP/1.1
 Accept-Encoding: gzip,deflate
 Content-Type: application/x-www-form-urlencoded;charset=UTF-8
 Authorization: Basic dGVhbWNpdHk6dGVhbWNpdHk=
 Accept: text/plain
 Content-Length: 335
 Host: 10.0.0.114:8080
 Connection: Keep-Alive
 User-Agent: Apache-HttpClient/4.1.1 (java 1.5)


merchant_account_id=ec68950e-1ffa-4bec-9218-792dc77a5109&request_id=demo-123444&transaction_type=get-url&requested_amount_currency=EUR&requested_amount=1.01&first_name=John&last_name=Doe&email=john.doe@wirecard.com&order_number=15957&order_detail=TestProduct&locale=en&ip_address=127.0.0.1&payment_method=giropay&bank_account_bic=testbic
NVP get-url Response (Failure)
 HTTP/1.1 201 Created
 Server: Apache-Coyote/1.1
 Content-Language: en-US
 Content-Length: 536
 Date: Wed, 21 Oct 2015 18:37:56 GMT


order_number=15957&transaction_type=debitget-url&locale=en&completion_time_stamp=20151021183757&status_code_1=400.1197&status_severity_1=error&transaction_state=failed&transaction_id=d93f00f2-7822-11e5-923a-00163e1f53eb&first_name=John&merchant_account_id=ec68950e-1ffa-4bec-9218-792dc77a5109&ip_address=127.0.0.1&bank_account_bic=testbic&order_detail=TestProduct&request_id=demo-123444&requested_amount=1.01&requested_amount_currency=EUR&email=john.doe%40wirecard.com&status_description_1=BIC+is+invalid.&last_name=Doe&payment_method=giropay&

Wirecard Payment Page v2

Wirecard Payment Page v1 LEGACY is no longer supported. We recommend using Wirecard Payment Page v2 integration instead. If you have questions about your existing Wirecard Payment Page v1 integration, consult our REST API integration guide.

giropay is a type of Online Bank Transfer.

General Information

Here you find all the information for integrating giropay into your Hosted and Embedded Payment Page.

Want to know more about Wirecard Payment Page v2 (WPP v2)?
Visit one of our integration guides (Hosted Payment Page, Embedded Payment Page) for a quick explanation and a step-by-step guide.

All WPP v2 integrations share a common process flow for creating payments.

Below, we provide a sample request for the transaction type debit, including field lists with short descriptions.

The samples provided below are designed for the testing environment and do not use real information. Please contact Merchant Support for production credentials.

For more details on the redirect-url, see the Configuring Redirects and IPNs for WPP v2 section.

For response verification examples, see the WPP v2 Security section.

Countries and Currencies

Countries

Germany

Currencies

EUR

Transaction Type debit

With giropay you can use the transaction type debit.

A debit charges the specified amount from the account holder’s bank account and marks it for immediate transfer.

Test Credentials
Test Credentials for Transaction Type debit

URL (Endpoint)

https://wpp-test.wirecard.com/api/payment/register

Merchant Account ID (MAID)

9b4b0e5f-1bc8-422e-be42-d0bad2eadabc

Username

16390-testing

Password

3!3013=D3fD8X7

Secret Key (used for response verification)

0c8c6f3a-1534-4fa1-99d9-d1c644d43709

Test Credentials for the giropay Environment

IBAN

DE12500105170648489890

BIC

GENODETT488

For a successful transaction:

  1. Create a payment session (initial request).

  2. Redirect the consumer to the payment page (initial response URL).

  3. Highly recommended: Parse and process the payment response.

We provide JSON examples for each step of this process. You can find them below.

Request Headers

Authorization

Use the username and password as given in your Wirecard contract to base64-encode the authorization.

For example, the authorization header for user:password is:

Authorization: Basic dXNlcjpwYXNzd29yZA==

Content-Type

For JSON requests the content type header is:

Content-Type: application/json;charset=UTF-8
1. Create a Payment Session (Initial Request)

Use the following sample to initiate a payment session.

{
        "payment": {
                "merchant-account-id": {
                        "value": "9b4b0e5f-1bc8-422e-be42-d0bad2eadabc"
                },
                "request-id": "{{$guid}}",
                "transaction-type": "debit",
                "requested-amount": {
                        "currency": "EUR",
                        "value": "1.00"

                },
                "payment-methods": {
                        "payment-method": [{
                                "name": "giropay"
                        }
                ]},
                "bank-account": {
                        "bic": "GENODETT488"
                },
                "success-redirect-url": "https://demoshop-test.wirecard.com/demoshop/#/success",
                "fail-redirect-url": "https://demoshop-test.wirecard.com/demoshop/#/error",
                "cancel-redirect-url": "https://demoshop-test.wirecard.com/demoshop/#/cancel"
        }
}
Field (JSON) Data Type Cardinality Size Description

merchant-account-id

value

String

M

36

A unique identifier assigned to every merchant account by Wirecard.

request-id

String

M

150

A unique identifier assigned to every request by the merchant. It is used when searching for or referencing it later. {{$guid}} serves as a placeholder for a random request-id.
Allowed characters: [a-z0-9-_ ].

transaction-type

String

M

36

The requested transaction type. The available type for giropay is debit.

requested-amount

value

Decimal

M

18.2

The full amount that is requested/contested in a transaction. 2 decimal places allowed.
Use . (decimal point) as the separator.

currency

String

M

3

The currency of the requested/contested transaction amount. For giropay payments, the currency must be set to EUR. Format: 3-character abbreviation according to ISO 4217.

payment-methods

payment-method

name

String

M

256

The name of the payment method used. Set this field to giropay.

bank-account

iban

String

O

34

The international bank account number (IBAN) required in a bank transfer. It is an international standard for identifying bank accounts across national borders. The current standard is ISO 13616:2007, which indicates SWIFT as the formal registrar.
Allowed characters: [a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}.

If you include this field and the IBAN value, the value can be displayed on the giropay redirect page. This varies from one consumer bank to another.

bic

String

O

15

The bank identifier code (BIC) in a bank transfer.
Allowed characters: ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3}).

If you include this field, the redirect to giropay is initiated. If not, the WPP v2 displays a field for entering the BIC.

success-redirect-url

String

O

2000

The URL to which the consumer is redirected after a successful payment, e.g. https://demoshop-test.wirecard.com/demoshop/#/success.

cancel-redirect-url

String

O

2000

The URL to which the consumer is redirected after having canceled a payment, e.g. https://demoshop-test.wirecard.com/demoshop/#/cancel.

fail-redirect-url

String

O

2000

The URL to which the consumer is redirected after an unsuccessful payment, e.g. https://demoshop-test.wirecard.com/demoshop/#/error.

2. Redirect the Consumer to the Payment Page (Sample Response URL)
{
"payment-redirect-url": "https://wpp-test.wirecard.com/processing?wPaymentToken=juZgmpkCN8v4tG3qKjmHGwcUKOyW9-eHE-Xm_6gzT5o"
}
Field (JSON) Data Type Description

payment-redirect-url

String

The URL which redirects to the payment form. Sent as a response to the initial request.

At this point, you need to redirect your consumer to payment-redirect-url (or render it in an iframe depending on your integration method).

Consumers are redirected to the payment form. There they enter their data and submit the form to confirm the payment.
Possible transaction results:

  • Successful (transaction-state: success)

  • Failed (transaction-state: failed)

  • Canceled (transaction-state: failed)

The transaction result is the value of transaction-state in the payment response. More details (including the status code) can also be found in the statuses object of the payment response. Canceled payments are returned as failed, but the status description indicates it was canceled.

In any case (unless the consumer cancels the transaction on a 3rd party provider page), a base64-encoded response containing payment information is sent to the configured redirection URL. See Configuring Redirects and IPNs for WPP v2 for more details on redirection targets after payment and transaction status notifications.

You can find a decoded payment response example below.

3. Parse and Process the Payment Response (Decoded Payment Response)
{
    "payment" : {
      "parent-transaction-id" : "eb434519-7794-4d6e-94b8-b65af5a88175",
      "transaction-id" : "2a0f8a4a-d4a1-4c83-b3bb-d4042b3aefc0",
      "request-id" : "14013748-518c-41ac-acc8-fb99195ddcb0",
      "transaction-state" : "success",
      "completion-time-stamp" : "2020-01-08T12:39:39",
      "requested-amount" : {
        "currency" : "EUR",
        "value" : 1.000000
      },
      "bank-account" : {
        "bic" : "GENODETT488"
      },
      "transaction-type" : "debit",
      "success-redirect-url" : "https://demoshop-test.wirecard.com/demoshop/#/success",
      "cancel-redirect-url" : "https://demoshop-test.wirecard.com/demoshop/#/cancel",
      "fail-redirect-url" : "https://demoshop-test.wirecard.com/demoshop/#/error",
      "merchant-account-id" : {
        "value" : "9b4b0e5f-1bc8-422e-be42-d0bad2eadabc"
      },
      "statuses" : {
        "status" : [ {
          "description" : "Successful confirmation received from the bank.",
          "severity" : "information",
          "code" : "201.1126"
        } ]
      },
      "payment-methods" : {
        "payment-method" : [ {
          "name" : "giropay"
        } ]
      },
      "api-id" : "wpp"
    }
  }
Field Data Type Description

transaction-id

String

A unique identifier assigned to every transaction. This information is returned in the response only.

transaction-state

String

The current transaction state.
Possible values:

  • in-progress

  • success

  • failed

Typically, a transaction starts with in-progress and ends with either success or failed. This information is returned in the response only.

completion-time-stamp

Timestamp

The UTC/ISO time-stamp documents the time and date when the transaction was executed.
Format: YYYY-MM-DDThh:mm:ss (ISO).

status

description

String

The description of the transaction status message.

severity

String

The definition of the status message.
Possible values:

  • information

  • warning

  • error

code

String

The code of the status message.

parent-transaction-id

String

Identifier referencing the transaction-id of a previous transaction.

api-id

String

Identifier of the currently used API.

provider-transaction-reference-id

String

Unique identifier of a transaction reference, assigned by the provider.

Post-Processing Operations

WPP v2 is best used for one-off payments (e.g. regular, independent debit transactions) or the initial transaction in a chain of them (e.g. a first authorization in a chain of recurring transactions). However, when it comes to referencing a transaction for any kind of post-processing operation - such as a refund of one of your debit transactions - use our REST API directly.

Check the REST API giropay specification for details on giropay-specific post-processing operations.

Here you can:

  • see the structure of an extended JSON request (XML-JSON mapping reference)

  • find the NVP equivalents for JSON fields (for migrating merchants)

JSON Structure of a giropay Request
{
    "payment": {
        "merchant-account-id": {
            "value": "String"
        },
        "request-id": "String",
        "transaction-type": "String",
        "requested-amount": {
            "value": "Numeric",
            "currency": "String"
        },
        "parent-transaction-id": "String",
        "account-holder": {
            "first-name": "String",
            "last-name": "String",
            "email": "String",
            "phone": "String",
            "address": {
                "city": "String",
                "country": "String",
                "postal-code": "String",
                "state": "String",
                "street1": "String",
                "street2": "String",
                "street3": "String"
            }
        },
        "shipping": {
            "first-name": "String",
            "last-name": "String",
            "phone": "String",
            "address": {
                "city": "String",
                "country": "String",
                "postal-code": "String",
                "state": "String",
                "street1": "String",
                "street2": "String",
                "street3": "String"
            }
        },
        "payment-methods": {
            "payment-method": [
                {
                    "name": "String"
                }
            ]
        },
        "bank-account": {
            "iban": "String"
        },
        "mandate": {
            "mandate-id": "String",
            "signed-date": "String"
        },
        "creditor-id": "String",
        "periodic": {
            "periodic-type": "String",
            "sequence-type": "String"
        },
        "descriptor": "String",
        "order-number": "String",
        "success-redirect-url": "String",
        "fail-redirect-url": "String",
        "cancel-redirect-url": "String"
    }
}
Field (NVP) Field (JSON) JSON Parent

bank_account_iban

iban

bank-account ({ })

cancel_redirect_url

cancel-redirect-url

payment ({ })

city

address ({ })/ city

account-holder ({ })

country

address ({ })/ country

account-holder ({ })

descriptor

descriptor

payment ({ })

email

email

account-holder ({ })

fail_redirect_url

fail-redirect-url

payment ({ })

first_name

first-name

account-holder ({ })

last_name

last-name

account-holder ({ })

merchant_account_id

value

merchant-account-id ({ })

order_number

order-number

payment ({ })

payment_method

payment-method ([ ])/name

payment-methods ({ })

periodic_type

periodic-type

periodic ({ })

phone

phone

account-holder ({ })

postal_code

address ({ })/ postal-code

account-holder ({ })

request_id

request-id

payment ({ })

requested_amount

value

requested-amount ({ })

requested_amount_currency

currency

requested-amount ({ })

sequence_type

sequence-type

periodic ({ })

shipping_city

address ({ })/ city

shipping ({ })

shipping_country

address ({ })/ country

shipping ({ })

shipping_first_name

first-name

shipping ({ })

shipping_last_name

last-name

shipping ({ })

shipping_phone

phone

shipping ({ })

shipping_postal_code

address ({ })/ postal-code

shipping ({ })

shipping_state

address ({ })/ state

shipping ({ })

shipping_street1

address ({ })/ street1

shipping ({ })

shipping_street2

address ({ })/ street2

shipping ({ })

shipping_street3

address ({ })/ street3

shipping ({ })

state

address ({ })/ state

account-holder ({ })

street1

address ({ })/ street1

account-holder ({ })

street2

address ({ })/ street2

account-holder ({ })

street3

address ({ })/ street3

account-holder ({ })

success_redirect_url

success-redirect-url

payment ({ })

transaction_type

transaction-type

payment ({ })