paysafecard

REST API & Wirecard Payment Page v1

paysafecard is a prepaid payment solution.

Countries and Currencies

Countries

Europe:
Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Finland, France, Georgia, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Montenegro, The Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, UK

North & South America:
Argentina, Brazil, Canada, Mexico, Peru, Uruguay, USA

Middle East:
Kuwait, Saudi Arabia, UAE

Oceania:
Australia, New Zealand

Africa:
Egypt

Currencies

AED, ARS, AUD, BRL, CAD, CHF, CZK, DKK, EGP, EUR, GBP, GEL, HRK, HUF, KWD, MXN, NOK, NZD, PEN, PLN, RON, SAR, SEK, TRY, USD, UYU

Communication Formats

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

Requests/Responses

Format

XML, JSON

Methods

POST

IPN Encodement

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

Transaction Types

This table lists all transaction types available for paysafecard.

For transaction type details which are not given here, look at Transaction Types.

Transaction Type Description Request [1] Response/IPN [2] wep.wirecard.com/ [3] Link to samples
debit

Creates a request to charge the specified amount from the consumer’s paysafecard.

YES

YES

YES

authorization

Authorizes you to charge a specific amount from consumer’s paysafecard (by a future capture-authorization request).

YES

YES

YES

capture-authorization

Captures full or partial amount until you reach the authorization limit. Only available after a successful authorization that was neither voided nor fully captured yet.

YES

YES

YES

void-authorization

Only available after a successful authorization which was neither voided nor captured yet. Voids the authorization as a whole.

YES

YES

YES

get-url

Retrieves the URL of the paysafecard landing page for the consumer to be redirected to.

NO

YES

YES

credit

Use this transaction type to send money (back) to the consumer via paysafecard without referencing to a previous payment.

YES

YES

YES

[1] YES in "Request" indicates that the transaction type can be sent in the request.

[2] YES in "Response/IPN" indicates that the transaction type appears in either response or notification.

[3] YES in "WEP" indicates that the transaction type is visible in Wirecard Enterprise Portal.

Test Credentials

URLs (Endpoints)

For transaction types

  • debit

  • authorization

  • credit

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

For transaction types

  • capture-authorization

  • void-authorization

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

Merchant Account ID (MAID)

493f9abe-0028-4631-b72e-836a7e3695af

Username

16390-testing

Password

3!3013=D3fD8X7

Secret Key

4c7356f9-0d28-4c9e-8a11-5bebf0786040

Workflow
debit
Payment Process Using REST API
Debit Workflow with RestAPI
  1. Consumer initiates a transaction.

  2. Send a request with transaction type debit and consumer’s data to the WPG endpoint.

  3. WPG sends a response to you. It contains the field payment-methods/payment-method/@url, which is the URL to the paysafecard landing page.

  4. Use this URL to redirect the consumer to the paysafecard landing page.

  5. Consumer enters 16-digit PIN and submits the transaction.

  6. paysafecard sends the authorization status to WPG.

  7. WPG sends you a Success/Failed notification.

Payment Process Using HPP
Debit Workflow with HPP
  1. Consumer selects payment method paysafecard.

  2. WPG redirects consumer from website to paysafecard landing page.

  3. On paysafecard landing page, consumer enters paysafecard PIN and clicks on Pay button.

  4. Redirect to merchant confirmation page.

authorization
Authorization Workflow
  1. Consumer initiates a transaction.

  2. Send a request with transaction type authorization and consumer’s data to the WPG endpoint.

  3. WPG sends a response to you. It contains the field payment-methods/payment-method/@url, which is the URL to the paysafecard landing page.

  4. Use this URL to redirect the consumer to the paysafecard landing page.

  5. Consumer enters 16-digit PIN and submits the transaction.

  6. Authorization transaction is created.

  7. paysafecard sends the authorization status to WPG.

  8. WPG sends a Success/Failed notification to you.

  9. paysafecard sends the transaction status to WPG.

  10. WPG sends a Success/Failed notification to the merchant.

  11. You can void or capture the transaction using transaction type void-authorziation or capture-authorization.

credit
  1. Send a credit request to WPG.

  2. WPG processes the transaction.

  3. WPG sends you a response with the transaction result.

  4. WPG sends you an IPN with the final transaction status.

Fields

The fields used for paysafecard requests, responses and notifications are the same as the REST API Fields.

Only one field has different properties:

Field M/O Data Type Size Description

account-holder.merchant-crm-id

M

String

64

Unique ID identifying the consumer in your online shop, e.g. in your CRM system. The parameter must not be a human readable email address. However, if you use an email address, you have to hash it first.

For information on the other fields required in a paysafecard transaction, refer to the REST API field list or the paysafecard samples.

Samples
authorization
XML authorization Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request|no whitespaces!}</request-id>
   <transaction-type>authorization</transaction-type>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale>de</locale>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Constatine</last-name>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">6.66</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML authorization 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>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>12161190-e804-4385-baa2-752bd472729d</transaction-id>
   <request-id>295fc328-d630-4a15-8a9e-6f9459460814</request-id>
   <transaction-type>authorization</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2018-10-01T08:44:51.000Z</completion-time-stamp>
   <statuses>
      <status code="201.0000" description="The resource was successfully created." severity="information" />
   </statuses>
   <requested-amount currency="EUR">6.66</requested-amount>
   <account-holder>
     <first-name>John</first-name>
     <last-name>Constatine</last-name>
     <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
     <payment-method url="https://customer.test.at.paysafecard.com/psccustomer/GetCustomerPanelServlet?currency=EUR&amp;mtid=295fc328-d630-4a15-8a9e-6f9459460814&amp;amount=6.66&amp;mid=1000000326&amp;locale=de" name="paysafecard" />
   </payment-methods>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale>de</locale>
   <country>DE</country>
</payment>
XML authorization Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request|no whitespaces!}</request-id>
   <transaction-type>authorization</transaction-type>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale>de</locale>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Constatine</last-name>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">0</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML authorization 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>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>6b7b0093-0246-4cf9-869f-e6818601187c</transaction-id>
   <request-id>cd5b8ffb-4b37-4bf5-a990-090c41669ccf</request-id>
   <transaction-type>authorization</transaction-type>
   <transaction-state>failed</transaction-state>
   <completion-time-stamp>2018-10-01T08:58:29.000Z</completion-time-stamp>
   <statuses>
      <status code="500.1154" description="The amount requested is not valid." severity="error" />
   </statuses>
   <requested-amount currency="EUR">0</requested-amount>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Constatine</last-name>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale>de</locale>
   <country>DE</country>
</payment>
capture-authorization
XML capture-authorization Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>capture-authorization</transaction-type>
   <parent-transaction-id>df662ff2-f5d6-4d68-a769-f2eca91b2965</parent-transaction-id>
   <api-id>elastic-payment-page</api-id>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale/>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">1.00</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML capture-authorization 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" self="https://api-test.wirecard.com:443/engine/rest/merchants/493f9abe-0028-4631-b72e-836a7e3695af/payments/55bd4dd7-cbe0-4fcf-b869-111936f42091">
   <merchant-account-id ref="https://api-test.wirecard.com:443/engine/rest/config/merchants/493f9abe-0028-4631-b72e-836a7e3695af">493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>55bd4dd7-cbe0-4fcf-b869-111936f42091</transaction-id>
   <request-id>d1830a3e-6258-4ae7-b9e6-04c61994ab71</request-id>
   <transaction-type>capture-authorization</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2018-10-01T08:48:49.000Z</completion-time-stamp>
   <statuses>
      <status code="201.0000" description="paysafecard:The resource was successfully created." severity="information" />
   </statuses>
   <requested-amount currency="EUR">1.00</requested-amount>
   <parent-transaction-id>df662ff2-f5d6-4d68-a769-f2eca91b2965</parent-transaction-id>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Constatine</last-name>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <parent-transaction-amount currency="EUR">6.660000</parent-transaction-amount>
   <api-id>elastic-api</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale></locale>
   <country>DE</country>
   <iso>
      <pos-transaction-time>084849</pos-transaction-time>
      <pos-transaction-date>1001</pos-transaction-date>
   </iso>
   <provider-account-id>000000317457278A</provider-account-id>
</payment>
XML capture-authorization Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>capture-authorization</transaction-type>
   <parent-transaction-id>ab662ff2-f5d6-4d68-a769-f2eca91b2965</parent-transaction-id>
   <api-id>elastic-payment-page</api-id>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale />
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">1.00</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML capture-authorization 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" self="https://api-test.wirecard.com:443/engine/rest/merchants/493f9abe-0028-4631-b72e-836a7e3695af/payments/ded0d69e-c771-4d9e-859f-d6a632e2559b">
   <merchant-account-id ref="https://api-test.wirecard.com:443/engine/rest/config/merchants/493f9abe-0028-4631-b72e-836a7e3695af">493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>ded0d69e-c771-4d9e-859f-d6a632e2559b</transaction-id>
   <request-id>d2cd32ee-2a20-45f8-bfed-c488a53ae510</request-id>
   <transaction-type>capture-authorization</transaction-type>
   <transaction-state>failed</transaction-state>
   <completion-time-stamp>2018-10-01T08:57:30.000Z</completion-time-stamp>
   <statuses>
      <status code="400.1020" description="The Parent Transaction Id does not exist.  Please check your input and try again." severity="error" />
   </statuses>
   <requested-amount currency="EUR">1.00</requested-amount>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <api-id>elastic-api</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale></locale>
   <country>DE</country>
</payment>
void-authorization
XML void-authorization Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>void-authorization</transaction-type>
   <requested-amount currency="EUR">1.00</requested-amount>
   <parent-transaction-id>df662ff2-f5d6-4d68-a769-f2eca91b2965</parent-transaction-id>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML void-authorization 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" self="https://api-test.wirecard.com:443/engine/rest/merchants/493f9abe-0028-4631-b72e-836a7e3695af/payments/d56c26e6-3a80-4df5-adfd-d710bd35472d">
   <merchant-account-id ref="https://api-test.wirecard.com:443/engine/rest/config/merchants/493f9abe-0028-4631-b72e-836a7e3695af">493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>d56c26e6-3a80-4df5-adfd-d710bd35472d</transaction-id>
   <request-id>5b855c8b-b5a5-4f7a-b449-1ace3c4a6384</request-id>
   <transaction-type>void-authorization</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2018-10-01T08:55:04.000Z</completion-time-stamp>
   <statuses>
      <status code="201.0000" description="paysafecard:The resource was successfully created." severity="information" />
   </statuses>
   <requested-amount currency="EUR">1.00</requested-amount>
   <parent-transaction-id>df662ff2-f5d6-4d68-a769-f2eca91b2965</parent-transaction-id>
   <account-holder>
      <first-name>John</first-name>
      <last-name>Constatine</last-name>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <parent-transaction-amount currency="EUR">6.660000</parent-transaction-amount>
   <api-id>elastic-api</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale>de</locale>
   <country>DE</country>
   <iso>
      <pos-transaction-time>085504</pos-transaction-time>
      <pos-transaction-date>1001</pos-transaction-date>
   </iso>
   <provider-account-id>000000317457278A</provider-account-id>
</payment>
XML void-authorization Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>void-authorization</transaction-type>
   <requested-amount currency="EUR">1.00</requested-amount>
   <parent-transaction-id>a56c26e6-3a80-4df5-adfd-d710bd35472d</parent-transaction-id>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML void-authorization 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" self="https://api-test.wirecard.com:443/engine/rest/merchants/493f9abe-0028-4631-b72e-836a7e3695af/payments/2cca20a0-fd1c-4f84-b4c7-82e28a12f14b">
   <merchant-account-id ref="https://api-test.wirecard.com:443/engine/rest/config/merchants/493f9abe-0028-4631-b72e-836a7e3695af">493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>2cca20a0-fd1c-4f84-b4c7-82e28a12f14b</transaction-id>
   <request-id>7fa75695-b706-49fa-8209-32486b0c635c</request-id>
   <transaction-type>void-authorization</transaction-type>
   <transaction-state>failed</transaction-state>
   <completion-time-stamp>2018-10-01T08:56:03.000Z</completion-time-stamp>
   <statuses>
      <status code="400.1020" description="The Parent Transaction Id does not exist.  Please check your input and try again." severity="error" />
   </statuses>
   <requested-amount currency="EUR">1.00</requested-amount>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <api-id>elastic-api</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
</payment>
debit
XML debit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>debit</transaction-type>
   <api-id>elastic-payment-page</api-id>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale>DE</locale>
   <account-holder>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">1.00</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML debit 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>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>e85571b6-c23a-4357-b5bb-c65ea2d21cf4</transaction-id>
   <request-id>e5509e18-96f3-4d47-b33e-9bb8c35317f4</request-id>
   <transaction-type>debit</transaction-type>
   <transaction-state>success</transaction-state>
   <completion-time-stamp>2018-10-01T08:59:25.000Z</completion-time-stamp>
   <statuses>
     <status code="201.0000" description="The resource was successfully created." severity="information" />
   </statuses>
   <requested-amount currency="EUR">1.00</requested-amount>
   <account-holder>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method url="https://customer.test.at.paysafecard.com/psccustomer/GetCustomerPanelServlet?currency=EUR&amp;mtid=e5509e18-96f3-4d47-b33e-9bb8c35317f4&amp;amount=1.00&amp;mid=1000000326&amp;locale=DE" name="paysafecard" />
   </payment-methods>
   <api-id>elastic-payment-page</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale>DE</locale>
   <country>DE</country>
</payment>
XML debit Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
   <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <request-id>${unique for each request}</request-id>
   <transaction-type>debit</transaction-type>
   <api-id>elastic-payment-page</api-id>
   <ip-address>127.0.0.1</ip-address>
   <country>DE</country>
   <locale>DE</locale>
   <account-holder>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <requested-amount currency="EUR">0</requested-amount>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
</payment>
XML debit 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>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
   <transaction-id>5b3f149c-8cdd-476b-abb2-775ab9823d8a</transaction-id>
   <request-id>61266507-eeb8-4284-a18d-104978088ca8</request-id>
   <transaction-type>debit</transaction-type>
   <transaction-state>failed</transaction-state>
   <completion-time-stamp>2018-10-01T09:00:57.000Z</completion-time-stamp>
   <statuses>
      <status code="500.1154" description="The amount requested is not valid." severity="error" />
   </statuses>
   <requested-amount currency="EUR">0</requested-amount>
   <account-holder>
      <merchant-crm-id>A123456789</merchant-crm-id>
   </account-holder>
   <ip-address>127.0.0.1</ip-address>
   <payment-methods>
      <payment-method name="paysafecard" />
   </payment-methods>
   <api-id>elastic-payment-page</api-id>
   <cancel-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/cancel</cancel-redirect-url>
   <fail-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/error</fail-redirect-url>
   <success-redirect-url>https://demoshop-test.wirecard.com/demoshop/#/success</success-redirect-url>
   <locale>DE</locale>
   <country>DE</country>
</payment>
credit
XML credit Request (Successful)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
  <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
  <request-id>{{$guid}}</request-id>
  <transaction-type>credit</transaction-type>
  <requested-amount currency="EUR">1</requested-amount>
  <account-holder>
    <first-name>rqlworzJKhWQGaWYZBHwJSzFnN</first-name>
    <last-name>oCKYNLTwlZFDjpXjrAjZwDBKer</last-name>
    <email>psc.test+mypins_wirecardwalter_ZMsXc@paysafecard.com</email>
    <merchant-crm-id>544545454</merchant-crm-id>
    <date-of-birth>1988-10-31</date-of-birth>
  </account-holder>
  <payment-methods>
    <payment-method name="paysafecard"/>
  </payment-methods>
</payment>
XML credit Response (Successful)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
    <transaction-id>21d5afaa-f235-41a8-850d-6944e81c862c</transaction-id>
    <request-id>aa4c9e67-a8c5-47d8-a9ff-d727840d021a</request-id>
    <transaction-type>credit</transaction-type>
    <transaction-state>success</transaction-state>
    <completion-time-stamp>2020-03-31T14:00:47.000Z</completion-time-stamp>
    <statuses>
        <status code="201.0000" description="The resource was successfully created." severity="information"/>
    </statuses>
    <requested-amount currency="EUR">1</requested-amount>
    <account-holder>
        <first-name>rqlworzJKhWQGaWYZBHwJSzFnN</first-name>
        <last-name>oCKYNLTwlZFDjpXjrAjZwDBKer</last-name>
        <email>psc.test+mypins_wirecardwalter_ZMsXc@paysafecard.com</email>
        <merchant-crm-id>544545454</merchant-crm-id>
    </account-holder>
    <payment-methods>
        <payment-method name="paysafecard"/>
    </payment-methods>
</payment>
XML credit Request (Failure)
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
  <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
  <request-id>{{$guid}}</request-id>
  <transaction-type>credit</transaction-type>
  <requested-amount currency="EUR">1</requested-amount>
  <account-holder>
    <first-name>rqlworzJKhWQGaWYZBHwJSzFnN</first-name>
    <last-name>oCKYNLTwlZFDjpXjrAjZwDBKer_wrong</last-name>
    <email>psc.test+mypins_wirecardwalter_ZMsXc@paysafecard</email>
    <merchant-crm-id>544545454</merchant-crm-id>
    <date-of-birth>1988-10-31</date-of-birth>
  </account-holder>
  <payment-methods>
    <payment-method name="paysafecard"/>
  </payment-methods>
</payment>
XML credit Response (Failure)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
    <merchant-account-id>493f9abe-0028-4631-b72e-836a7e3695af</merchant-account-id>
    <transaction-id>5def9425-6345-4c04-9710-4fe243752cbd</transaction-id>
    <request-id>c2d227b0-15d8-4274-8cd2-414cdec9b884</request-id>
    <transaction-type>credit</transaction-type>
    <transaction-state>failed</transaction-state>
    <completion-time-stamp>2020-03-31T14:00:03.000Z</completion-time-stamp>
    <statuses>
        <status code="400.1016" description="The Email Address is syntactically incorrect.  Please check your input and try again." severity="error"/>
    </statuses>
    <requested-amount currency="EUR">1</requested-amount>
    <account-holder>
        <first-name>rqlworzJKhWQGaWYZBHwJSzFnN</first-name>
        <last-name>oCKYNLTwlZFDjpXjrAjZwDBKer_wrong</last-name>
        <email>psc.test+mypins_wirecardwalter_ZMsXc@paysafecard</email>
        <merchant-crm-id>544545454</merchant-crm-id>
    </account-holder>
    <payment-methods>
        <payment-method name="paysafecard"/>
    </payment-methods>
</payment>

Wirecard Payment Page v2

General Information

This is a reference page for paysafecard. Here you find all the information necessary for integrating this payment method in your Hosted and Embedded Payment Page.

Are you unfamiliar with Wirecard Payment Page v2 (WPP v2)?
Visit one of the integration guides (Hosted, Embedded) for a quick explanation and a step-by-step guide before continuing.

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

Below, you find example requests for debit, authorization and capture-authorization including field lists with short descriptions.

These requests are designed for the testing environment and do not use real information.

For production, you need to use production credentials. For details contact our merchant support.

All given requests return successful responses.

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.

About paysafecard

paysafecard is a well-known prepaid electronic payment method for mainly online shopping e.g. in gaming, social media & communities and music, film & entertainment industries. paysafecard is currently available in many countries and languages all over the world. It offers a broad selection of currencies to choose from.

Consumers either purchase a paysafecard voucher which contains a 16-digit PIN from sales outlets or from authorized online PIN shops, or alternatively, create a my paysafecard account defining their personal username and password.

paysafecard PINs can be used multiple times for paying in online shops or for topping up the my paysafecard account.

Using my paysafecard during the payment process in an online shop, you do not have to reenter the PIN again, only username and password are required.

Paying with paysafecard, the consumer enters the 16 digit number and the amount tendered is deducted from the paysafecard balance. Thus, the same PIN code can be used multiple times. For larger sums, it is possible to combine various paysafecard PINs. Combining PINs also allows consumers to use up any remaining credit on a paysafecard PIN. The current balance of each paysafecard as well as its transaction history and production date can be viewed at the official paysafecard site by entering the respective 16 digit PIN code.

Payments for goods or services other than EUR are converted into EUR at the conversion rate at the time of purchase. The conversion fee varies depending on the original currency and end currency and it varies from country to country. The currency conversion rates for foreign currencies are always available on the paysafecard web site.

Test Credentials

Test credentials for transaction types debit, authorization and capture-authorization.

URI (Endpoint)

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

Merchant Account ID (MAID)

4c0de18e-4c20-40a7-a5d8-5178f0fe95bd

Username

70000-APITEST-AP

Password

qD2wzQ_hrc!8

Secret Key (used for response verification)

bb1f2975-827b-4aa8-bec6-405191d85fa5

Test Credentials for paysafecard Sandbox

16-digit PIN

3105 6626 4830 5874

Countries and Currencies

paysafecard can be used in the following countries and with the listed currencies:

Countries

Europe

Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Finland, France, Georgia, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Montenegro, The Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Switzerland, Turkey, UK

North & South America

Argentina, Brazil, Canada, Mexico, Peru, Uruguay, USA

Middle East

Kuwait, Saudi Arabia, UAE

Oceania

Australia, New Zealand

Africa

Egypt

Currencies

AED, ARS, AUD, BRL, CAD, CHF, CZK, DKK, EGP, EUR, GBP, GEL, HRK, HUF, KWD, MXN, NOK, NZD, PEN, PLN, RON, SAR, SEK, TRY, USD, UYU

Transaction Type debit

A debit transaction charges the consumer’s paysafecard account with the specified amount and transfers it immediately.

For a successful debit transaction:

  1. Create a payment session (initial debit request).

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

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

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

Endpoint for paysafecard payments.

Initial Request

The initial request creates the payment session. If it is successful, you receive a URL as a response which redirects to the payment form.

Request Headers

Authorization

Basic NzAwMDAtQVBJVEVTVC1BUDpxRDJ3elFfaHJjITg=

Content-Type

application/json

1. Create a Payment Session (Initial Request)
{
    "payment":{
        "merchant-account-id":{
            "value":"4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id":"{{$guid}}",
        "transaction-type":"debit",
        "requested-amount":{
            "value":10.1,
            "currency":"EUR"
        },
        "account-holder":{
            "merchant-crm-id":"A123456789"
        },
        "payment-methods":{
            "payment-method":[
               {
               "name":"paysafecard"
                }
            ]
        },
        "notifications": {
            "notification": [
                {
                "url": "https://yourdomain.com/ipn.php"
                }
            ]
        },
        "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"
    }
}
Field (JSON) Data Type Mandatory/Optional Size Description

merchant-account-id

value

String

Mandatory

36

A unique identifier assigned to every merchant account (by Wirecard).

request-id

String

Mandatory

150

A unique identifier assigned by the merchant to each request. Used when searching for or referencing it later.

You may enter any request-id that has never been used before.

As the request ID must be unique, {{$guid}} serves as a placeholder; Postman uses it to generate a random request-id for testing.

Allowed characters: [a-z0-9-_]

transaction-type

String

Mandatory

n/a

The requested transaction type, i.e. debit.

Available transaction types for paysafecard:

  • authorization

  • capture-authorization

  • debit

requested-amount

value

Numeric

Mandatory

9.2

The full amount that is requested/contested in a transaction. 2 decimal digits allowed.

Use . (decimal point) as the separator.

currency

String

Mandatory

3

The currency of the requested/contested transaction amount. For paysafecard payments, the currency must be set to EUR.

Format: 3-character abbreviation according to ISO 4217.

account-holder

merchant-crm-id

String

Mandatory

64

Unique ID identifying the consumer of your online shop, e.g. from your CRM system.
The parameter must not be a human readable email address. However, if an email address is used, you have to hash it beforehand.

payment-method

name

String

Mandatory

256

The name of the payment method used for the transaction, i.e. paysafecard

notification-url

String

Optional

The URL to which Wirecard Payment Gateway sends the transaction outcome.

success-redirect-url

String

Mandatory

2000

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

fail-redirect-url

String

Mandatory

2000

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

cancel-redirect-url

String

Mandatory

2000

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

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

payment-redirect-url

String

The URL which redirects to the payment form (hosted by paysafecard). 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. A payment can be:

  • successful (transaction-state: success),

  • failed (transaction-state: failed),

  • canceled. The consumer canceled the payment before/after submission (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 payment response in the statuses object. 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 & transaction status notifications.

You can find a decoded payment response example below.

3. Parse and Process the Payment Response (Decoded Payment Response)
{
    "payment" : {
        "merchant-account-id" : {
            "value" : "4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id" : "66b62159-691f-40e3-8411-24c854bb0f8b",
        "account-holder" : {
            "merchant-crm-id" : "A123456789"
        },
        "transaction-type" : "debit",
        "parent-transaction-id" : "8d2ec658-d234-44cb-b557-791489e8464f",
        "payment-methods" : {
            "payment-method" : [ {
                "name" : "paysafecard"
            } ]
        },
        "transaction-state" : "success",
        "transaction-id" : "1f806091-5ab1-4832-8ccf-64232f1a7677",
        "completion-time-stamp" : "2018-09-26T05:54:20",
        "requested-amount" : {
            "currency" : "EUR",
            "value" : 10.100000
        },
        "statuses" : {
            "status" : [ {
                "description" : "The resource was successfully created.",
                "severity" : "information",
                "code" : "201.0000"
            } ]
        },
        "api-id" : "{api-id]",
        "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"
    }
}
Field (JSON) Data Type Description

merchant-account-id

value

String

A unique identifier assigned to every merchant account (by Wirecard). You receive a unique merchant account ID for each payment method.

request-id

String

A unique identifier assigned to every request (by merchant). Used when searching for or referencing it later.

account-holder

merchant-crm-id

String

Unique ID identifying the consumer of your online shop, e.g. from your CRM system.

transaction-type

String

The requested transaction type, here: debit.

parent-transaction-id

String

The ID of the transaction being referenced as a parent. As a debit transaction is internally split into sub-transactions, the parent-transaction-id serves to link these sub-transactions.

payment-method

name

String

The name of the payment method used for the transaction, here: paysafecard.

transaction-state

String

The current transaction state.

Possible values:

  • in-progress

  • success

  • failed

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

transaction-id

String

A unique identifier assigned to every transaction. Used when searching for or referencing it later.

completion-time-stamp

Date

The UTC/ISO time-stamp documenting the time and date when the transaction was executed.

Format: YYYY-MM-DDThh:mm:ss.sssZ (ISO).

requested-amount

value

Numeric

The full amount that was requested/contested in the transaction.

currency

String

The currency of the requested/contested transaction amount.

Format: 3-character abbreviation according to ISO 4217.

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

Status code of the status message.
See the complete list of status codes and descriptions.

api-id

String

Identifier of the currently used API.

success-redirect-url

String

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

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

fail-redirect-url

String

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

Transaction Type authorization

An authorization

  • reserves funds on a consumer’s paysafecard account (e.g. until the merchant ships/delivers the goods/services).

  • does not trigger money transfer.

To transfer money, the amount has to be captured with the transaction type capture-authorization.

For a successful authorization transaction

  1. Create an authorization session (initial authorization request).

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

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

Endpoint for paysafecard payments.

Initial Request

The initial request creates the payment session. If it’s successful, you receive a URL as a response which redirects to the paysafecard payment form.

Request Headers

Authorization

Basic NzAwMDAtQVBJVEVTVC1BUDpxRDJ3elFfaHJjITg=

Content-Type

application/json

1. Create a Payment Session (Initial Request)
{
    "payment":{
        "merchant-account-id":{
            "value":"4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id":"{{$guid}}",
        "transaction-type":"authorization",
        "requested-amount":{
            "value":10.1,
            "currency":"EUR"
        },
        "account-holder":{
            "merchant-crm-id":"A123456789"
        },
        "payment-methods":{
            "payment-method":[
               {
               "name":"paysafecard"
                }
            ]
        },
        "notifications": {
            "notification": [
                {
                "url": "https://yourdomain.com/ipn.php"
                }
            ]
        },
        "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"
    }
}
Field (JSON) Data Type Mandatory/Optional Size Description

merchant-account-id

value

String

Mandatory

36

A unique identifier assigned to every merchant account (by Wirecard).

request-id

String

Mandatory

150

A unique identifier assigned by the merchant to each request. Used when searching for or referencing it later.

You may enter any request-id that has never been used before.

As the request ID must be unique, {{$guid}} serves as a placeholder; Postman uses it to generate a random request-id for testing.

Allowed characters: [a-z0-9-_]

transaction-type

String

Mandatory

n/a

The requested transaction type, i.e. authorization.

Available transaction types for paysafecard:

  • authorization

  • capture-authorization

  • debit

requested-amount

value

Numeric

Mandatory

9.2

The full amount that is requested/contested in a transaction. 2 decimal digits allowed.

Use . (decimal point) as the separator.

currency

String

Mandatory

3

The currency of the requested/contested transaction amount. For paysafecard payments, the currency must be set to EUR.

Format: 3-character abbreviation according to ISO 4217.

account-holder

merchant-crm-id

String

Mandatory

64

Unique ID identifying the consumer of your online shop, e.g. from your CRM system.
The parameter must not be a human readable email address. However, if an email address is used, you have to hash it beforehand.

payment-method

name

String

Mandatory

256

The name of the payment method used for the transaction, i.e. paysafecard

notification-url

String

Optional

The URL to which Wirecard Payment Gateway sends the transaction outcome.

success-redirect-url

String

Mandatory

2000

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

fail-redirect-url

String

Mandatory

2000

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

cancel-redirect-url

String

Mandatory

2000

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

2. Redirect the Consumer to the Payment Page (Sample Response URL)

The response to this initial authorization request is the payment-redirect-url. Proceed with step 2 in a similar way as described for debit.

3. Parse and Process the authorization Response (Decoded Payment Response)
{
    "payment" : {
        "merchant-account-id" : {
            "value" : "4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id" : "66b62159-691f-40e3-8411-24c854bb0f8b",
        "account-holder" : {
            "merchant-crm-id" : "A123456789"
        },
        "transaction-type" : "authorization",
        "parent-transaction-id" : "8d2ec658-d234-44cb-b557-791489e8464f",
        "payment-methods" : {
            "payment-method" : [ {
                "name" : "paysafecard"
            } ]
        },
        "transaction-state" : "success",
        "transaction-id" : "The-transaction-id-received-here-is-the-parent-transaction-id-of-the-following-capture-authorization",
        "completion-time-stamp" : "2018-09-26T05:54:20",
        "requested-amount" : {
            "currency" : "EUR",
            "value" : 10.100000
        },
        "statuses" : {
            "status" : [ {
                "description" : "The resource was successfully created.",
                "severity" : "information",
                "code" : "201.0000"
            } ]
        },
        "api-id" : "{api-id]",
        "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"
    }
}
Field (JSON) Data Type Description

merchant-account-id

value

String

A unique identifier assigned to every merchant account (by Wirecard). You receive a unique merchant account ID for each payment method.

request-id

String

A unique identifier assigned to every request (by merchant). Used when searching for or referencing it later.

account-holder

merchant-crm-id

String

Unique ID identifying the consumer of your online shop, e.g. from your CRM system. The parameter must not be a human readable email address. However, if an email address is used, you have to hash it beforehand.

transaction-type

String

The requested transaction type, i.e. authorization.

parent-transaction-id

String

The ID of the transaction being referenced as a parent (e.g. the transaction ID of a previous internal get-url).

payment-method

name

String

The name of the payment method used for the transaction, here: paysafecard.

transaction-state

String

The current transaction state.

Possible values:

  • in-progress

  • success

  • failed

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

transaction-id

String

A unique identifier assigned to every transaction. Used when searching for or referencing it later.
The transaction ID of an authorization is the parent transaction ID of the following capture-authorization request.

completion-time-stamp

Date

The UTC/ISO time-stamp documenting the time and date when the transaction was executed.

Format: YYYY-MM-DDThh:mm:ss.sssZ (ISO).

requested-amount

value

Numeric

The full amount that was requested/contested in the transaction.

currency

String

The currency of the requested/contested transaction amount.

Format: 3-character abbreviation according to ISO 4217.

status

description

String

The description of the transaction status message. See the complete list of status codes and descriptions.

severity

String

The definition of the status message.

Possible values:

  • information

  • warning

  • error

code

String

Status code of the status message.
See the complete list of status codes and descriptions.

api-id

String

Identifier of the currently used API.

success-redirect-url

String

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

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

fail-redirect-url

String

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

Transaction Type capture-authorization

A capture-authorization transfers funds reserved by a prior authorization request from the consumer’s account. You can refer to a preceding authorization with the field parent-transaction-id. The transaction-id from an authorization response is the parent-transaction-id of the following capture-authorization request.

Endpoint for paysafecard payments.

Initial Request

The initial request creates the payment session. If it is successful, you receive a URL as a response which redirects to the paysafecard payment form.

Request Headers

Authorization

Basic NzAwMDAtQVBJVEVTVC1BUDpxRDJ3elFfaHJjITg=

Content-Type

application/json

capture-authorization (request)
{
    "payment": {
        "merchant-account-id":{
            "value":"4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id":"{{$guid}}",
        "transaction-type":"capture-authorization",
        "parent-transaction-id": "enter-the-transaction-id-of-the-preceding-authorization",
        "requested-amount":{
            "value":10.1,
            "currency":"EUR"
        },
        "payment-methods":{
            "payment-method":[
                {
                   "name":"paysafecard"
                }
            ]
        },
        "account-holder":{
            "merchant-crm-id":"A123456789"
        },
        "notifications": {
            "notification": [
                {
                "url": "https://yourdomain.com/ipn.php"
                }
            ]
        },
        "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"
   }
}
Field (JSON) Data Type Mandatory/Optional Size Description

merchant-account-id

value

String

Mandatory

36

A unique identifier assigned to every merchant account (by Wirecard).

request-id

String

Mandatory

150

A unique identifier assigned by the merchant to each request. Used when searching for or referencing it later.

You may enter any request-id that has never been used before.

As the request ID must be unique, {{$guid}} serves as a placeholder; Postman uses it to generate a random request-id for testing.

Allowed characters: [a-z0-9-_]

transaction-type

String

Mandatory

n/a

The requested transaction type, i.e. authorization.

Available transaction types for paysafecard:

  • authorization

  • capture-authorization

  • debit

parent-transaction-id

String

Mandatory

36

The ID of the transaction being referenced as a parent (e.g. the transaction ID of a previous internal get-url).

requested-amount

value

Numeric

Mandatory

9.2

The full amount that is requested/contested in a transaction. 2 decimal digits allowed.

Use . (decimal point) as the separator.

currency

String

Mandatory

3

The currency of the requested/contested transaction amount. For paysafecard payments, the currency must be set to EUR.

Format: 3-character abbreviation according to ISO 4217.

account-holder

merchant-crm-id

String

Mandatory

64

Unique ID identifying the consumer of your online shop, e.g. from your CRM system.
The parameter must not be a human readable email address. However, if an email address is used, you have to hash it beforehand.

payment-method

name

String

Mandatory

256

The name of the payment method used for the transaction, i.e. paysafecard

notification-url

String

Optional

The URL to which Wirecard Payment Gateway sends the transaction outcome.

success-redirect-url

String

Mandatory

2000

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

fail-redirect-url

String

Mandatory

2000

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

cancel-redirect-url

String

Mandatory

2000

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

capture-authorization (response)
{
    "payment": {
        "merchant-account-id": {
            "value": "4c0de18e-4c20-40a7-a5d8-5178f0fe95bd"
        },
        "request-id": "37f26cbf-f4aa-429e-9966-82d2b3cbad46",
        "account-holder": {
            "merchant-crm-id": "A123456789"
        },
        "transaction-type": "capture-authorization",
        "parent-transaction-id": "6dadad3d-3cbd-4789-8165-ffdf15752bca",
        "payment-methods": {
            "payment-method": [
                {
                    "name": "paysafecard"
                }
            ]
        },
        "transaction-state": "success",
        "transaction-id": "2a1baa9d-d29f-408c-8bed-ec38194e4e16",
        "completion-time-stamp": "2018-10-01T13:17:58",
        "requested-amount": {
            "value": 10.1,
            "currency": "EUR"
        },
        "statuses": {
            "status": [
                {
                    "code": "201.0000",
                    "description": "paysafecard:The resource was successfully created.",
                    "severity": "information"
                }
            ]
        },
        "api-id": "{api-id]",
        "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",
        }
    }
}
Field (JSON) Data Type Description

merchant-account-id

value

String

A unique identifier assigned to every merchant account (by Wirecard). You receive a unique merchant account ID for each payment method.

request-id

String

A unique identifier assigned to every request (by merchant). Used when searching for or referencing it later.

account-holder

merchant-crm-id

String

Unique ID identifying the consumer of your online shop, e.g. from your CRM system. The parameter must not be a human readable email address. However, if an email address is used, you have to hash it beforehand.

transaction-type

String

The requested transaction type, i.e. capture-authorization.

parent-transaction-id

String

The ID of the transaction being referenced as a parent, i.e. the transaction ID of the preceding authorization.

payment-method

name

String

The name of the payment method used for the transaction, i.e. paysafecard.

transaction-state

String

The current transaction state.

Possible values:

  • in-progress

  • success

  • failed

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

transaction-id

String

A unique identifier assigned to every transaction. Used when searching for or referencing it later.

completion-time-stamp

Date

The UTC/ISO time-stamp documenting the time and date when the transaction was executed.

Format: YYYY-MM-DDThh:mm:ss.sssZ (ISO).

requested-amount

value

Numeric

The full amount that was requested/contested in the transaction.

currency

String

The currency of the requested/contested transaction amount.

Format: 3-character abbreviation according to ISO 4217.

status

description

String

The description of the transaction status message. See the complete list of status codes and descriptions.

severity

String

The definition of the status message.

Possible values:

  • information

  • warning

  • error

code

String

Status code of the status message.
See the complete list of status codes and descriptions.

api-id

String

Identifier of the currently used API.

success-redirect-url

String

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

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

fail-redirect-url

String

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

void-authorization

You may cancel an authorization using the REST API if the authorization was successful and has neither been captured nor voided before.

Only the whole authorized amount may be voided.

For a void process you must provide a parent-transaction-id. This is the transaction-id of the preceding authorization. You can gather it from the response to a successful authorization.

NVP Field Reference

NVP equivalents for JSON fields (for migrating merchants).

Here you can:

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

  • see the structure of a full request (optional fields included).

JSON Structure for paysafecard Requests
{    "payment":{
        "merchant-account-id":{
            "value":"string"
        },
        "request-id":"string",
        "transaction-type":"string",
        "requested-amount":{
            "value":0,
            "currency":"string"
        },
        "account-holder":{
            "merchant-crm-id":"string"
        },
        "payment-methods":{
            "payment-method":[
               {
               "name":"paysafecard"
                }
            ]
        },
        "success-redirect-url": "string",
        "cancel-redirect-url": "string",
        "fail-redirect-url": "string"
    }
}
Field (NVP) Field (JSON) JSON Parent

merchant_account_id

value

merchant-account-id ({ })

request_id

request-id

payment ({ })

transaction_type

transaction-type

payment ({ })

requested_amount

value

requested-amount ({ })

requested_amount_currency

currency

requested-amount ({ })

merchant_crm_id

merchant-crm-id

account-holder ({ })

payment_method

payment-method ([ ])/name

payment-methods ({ })

success_redirect_url

success-redirect-url

payment ({ })

fail_redirect_url

fail-redirect-url

payment ({ })

cancel_redirect_url

cancel-redirect-url

payment ({ })

ip_address

ip-address

payment ({ })

Response-Only Fields
{
    "payment" : {
        "transaction-state" : "string",
        "transaction-id" : "string",
        "completion-time-stamp" : "date",
        "api-id" : "string",
        "statuses" : {
            "status" : [ {
                "description" : "string",
                "severity" : "string",
                "code" : "string"
            } ]
        }
    }
}
Field (NVP) Field (JSON) JSON Parent

transaction_id

transaction-id

payment ({ })

transaction_state

transaction-state

payment ({ })

completion_time_stamp

completion-time-stamp

payment ({ })

api_id

api-id

payment ({ })

status_description_n

status ([ {} ])/ description

statuses ({ })

status_severity_n

status ([ {} ])/ severity

statuses ({ })

status_code_n

status ([ {} ])/ code

statuses ({ })

Custom URL: