A "paysafecard" is een voorafbetaalde kaart die uw klanten wereldwijd bij verkooppunten (bijvoorbeeld bij PayPoint) kunnen kopen. Elke paysafecard bevat een unieke pincode die de klant op de kassapagina kan invoeren om een aankoop te voltooien.
"myPaysafe" is een persoonlijke online betaalrekening om klanten te helpen meerdere PIN-codes op paysafecard bij te houden. De klant kan ervoor kiezen om zich op het moment van aankoop aan te melden bij zijn "myPaysafe" account, waarmee hij kan betalen met paysafecard PIN-codes die op zijn account zijn opgeslagen.
Ondersteunde landen | Geen beperkingen voor landen van de klant |
Ondersteunde munteenheden | ARS, AUD, BGN, CAD, CHF, CZK, DKK, EUR, GBP, HUF, MXN, NOK, NZD, PEN, PLN, RON, SEK, TRY, USD, UYU |
Terugbetalingen |
Alleen Payouts worden ondersteund. |
Terugboekingen |
Betalingen zijn niet onderhevig aan terugboekingen. |
Zero-authorisation |
Niet ondersteund. |
Terugkerende betalingen |
Niet ondersteund. |
Configuratie
Om paysafecard op uw account in te schakelen, neemt u contact op met uw accountmanager.
Er wordt een testzandbakaccount verstrekt, die u nodig hebt om uw implementatie te testen.
Procesoverzicht
Wat zal de klant zien?
- Tijdens het afrekenen presenteert uw website paysafecard als betaalmethode.
- De klant selecteert het gewenste afleveradres op uw afrekenpagina en kiest voor betaling via paysafecard.
- De klant wordt doorgestuurd naar paysafecard, waar hij zijn PIN-code(s) kan invoeren of kan inloggen op zijn "myPaysafe" account.
- De klant bekijkt zijn bestelling en gaat akkoord met de betaling op paysafecard.
- De klant wordt doorgestuurd naar uw website, waar een bevestiging wordt weergegeven (bv. "Betaling geslaagd").
Hoe werkt het achter de schermen?
De paysafecard betalingsstroom kan worden opgesplitst in drie hoofdonderdelen, zoals hieronder weergegeven:
-
Initieer de klant
- De klant gaat akkoord met een betaling via paysafecard op de website van de verkoper.
- Merchant dient ORDER verzoek in om de sessie te starten, inclusief cancelurl en returnurl.
- Merchant ontvangt ORDER antwoord, inclusief customerredirecturl.
-
Doorverwijzen naar paysafecard
- De Merchant leidt de browser van de klant door naar de customerredirecturl.
- De klant voert de PIN-code(s) in die te vinden is (zijn) op paysafecard of meldt zich aan.
- Als dit lukt, wordt de browser van de klant omgeleid naar de returnurl.
Als de bestelling op paysafecard wordt geannuleerd, wordt de browser doorgestuurd naar de cancelurl waar een foutmelding kan worden weergegeven. We raden aan om alternatieve betaalmethoden weer te geven, zodat de klant het opnieuw kan proberen.
-
De verwerking van de autorisatie
- Alleen als het bovenstaande is gelukt, dient de verkoper een AUTH verzoek in om de betaling te verwerken.
- De verkoper ontvangt het antwoord AUTH en toont de ontvangstpagina aan de klant.
1. Initieer de klant
Wanneer de klant ervoor kiest te betalen met paysafecard, moet uw systeem een ORDER verzoek uitvoeren en het teruggestuurde antwoord interpreteren.
ORDER verzoekvoorbeeld
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"currencyiso3a": "GBP",
"requesttypedescription": "ORDER",
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "2001",
"paymenttypedescription": "PAYSAFECARD",
"returnurl": "https://www.example.com/return",
"cancelurl": "https://www.example.com/cancel",
"billingid": "000001",
"paysafeminage": "18",
"paysafekyclevel": "SIMPLE",
"paysafecountryrestriction": "DE"
}
strequest = securetrading.Request()
strequest.update(order)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'currencyiso3a' => 'GBP',
'requesttypedescription' => 'ORDER',
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '2001',
'paymenttypedescription' => 'PAYSAFECARD',
'returnurl' => 'https://www.example.com/return',
'cancelurl' => 'https://www.example.com/cancel',
'billingid' => '000001',
'paysafeminage' => '18',
'paysafekyclevel' => 'SIMPLE',
'paysafecountryrestriction' => 'DE'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"currencyiso3a": "GBP",
"requesttypedescription": "ORDER",
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "2001",
"paymenttypedescription": "PAYSAFECARD",
"returnurl": "https://www.example.com/return",
"cancelurl": "https://www.example.com/cancel",
"billingid": "000001",
"paysafeminage": "18",
"paysafekyclevel": "SIMPLE",
"paysafecountryrestriction": "DE"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"GBP",
"requesttypedescription":"ORDER",
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"2001",
"paymenttypedescription":"PAYSAFECARD",
"returnurl":"https://www.example.com/return",
"cancelurl":"https://www.example.com/cancel",
"billingid":"000001",
"paysafeminage":"18",
"paysafekyclevel":"SIMPLE",
"paysafecountryrestriction":"DE"
}]
}'
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<merchant>
<returnurl>https://www.example.com/return</returnurl>
<cancelurl>https://www.example.com/cancel</cancelurl>
</merchant>
<billing id="000001">
<amount currencycode="GBP">100</amount>
<payment type="PAYSAFECARD">
<paysafe>
<minage>18</minage>
<kyclevel>SIMPLE</kyclevel>
<countryrestriction>DE</countryrestriction>
</paysafe>
</payment>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Alleen "ECOM" (e-commerce) wordt ondersteund. | |
baseamount XPath: /billing/amount |
Numeriek (11) | Het bedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt ingediend als 1000. Deze waarde moet groter zijn dan nul. | |
billingid XPath: /billing/@id |
Alfanumeriek (100) |
Een door u opgegeven id, gebruikt om de klant te identificeren.
U moet altijd een billingid:
|
|
cancelurl XPath: /merchant/cancelurl |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd als hij de autorisatie annuleert terwijl hij zich op de servers van paysafecardbevindt. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie zal worden verwerkt. paysafecard transacties kunnen worden verwerkt in de volgende valuta:
ARS, AUD, BGN, CAD, CHF, CZK, DKK, EUR, GBP, HUF, MXN, NOK, NZD, PEN, PLN, RON, SEK, TRY, USD, UYU |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". | |
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "ORDER" zijn. | |
returnurl XPath: /merchant/returnurl |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na bevestiging van de betaling door paysafecard. | |
sitereference XPath: /operation/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. | |
orderreference XPath: /merchant/orderreference |
Alfanumeriek, inclusief symbolen (25)
Aanbevolen lengte 25 tekens of minder (exacte lengte afhankelijk van de wervende bank). Niet-naleving van deze eis kan ertoe leiden dat de tekst in de transactie wordt ingekort. |
Uw unieke bestelreferentie die in het Trust Payments systeem kan worden opgeslagen. | |
paysafecountryrestriction XPath: /billing/payment/paysafe/countryrestriction |
Alpha (2) |
Beperkt de verwerking van de betaling tot uitsluitend het opgegeven land (in iso2a-formaat).
bijv. "GB" voor Verenigd Koninkrijk. |
|
paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de rekeninghouder "myPaysafe". Er zijn twee niveaus:
|
|
paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
Bepaalt de minimumleeftijd van de rekeninghouder "myPaysafe".
Als u bijvoorbeeld alleen 18-plussers wilt toelaten, vul dan in dit veld "18" in. |
ORDER antwoordvoorbeeld
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'transactionreference': u '72-32-20002',
u 'paymenttypedescription': u 'PAYSAFECARD',
u 'settleduedate': u '2016-12-23',
u 'transactionstartedtimestamp': u '2016-12-23 15:35:40',
u 'errormessage': u 'Ok',
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'customerredirecturl': u 'https://www.paysafecard.com/etc',
u 'requesttypedescription': u 'ORDER',
u 'settlestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'livestatus': u '0',
u 'paysafeminage': u '18',
u 'paysafekyclevel': u 'SIMPLE',
u 'paysafecountryrestriction': u 'DE',
u 'paysafeid': u '23842'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(16) {
["transactionreference"] => string(11) "72-32-20002"
["paymenttypedescription"] => string(11) "PAYSAFECARD"
["settleduedate" ]=> string(10) "2016-12-23"
["transactionstartedtimestamp"] => string(19) "2016-12-23 15:35:40"
["errormessage"] => string(2) "Ok"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["customerredirecturl"] => string(137) "https://www.paysafecard.com/etc"
["requesttypedescription"] => string(5) "ORDER"
["settlestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["livestatus"] => string(1) "0"
["paysafeminage"] => string(2) "18"
["paysafekyclevel"] => string(6) "SIMPLE"
["paysafecountryrestriction"] => string(2) "DE"
["paysafeid"] => string(5) "23842"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"transactionreference":"72-32-20002",
"paymenttypedescription":"PAYSAFECARD",
"settleduedate":"2016-12-23",
"transactionstartedtimestamp":"2016-12-23 15:35:40",
"errormessage":"Ok",
"accounttypedescription":"ECOM",
"errorcode":"0",
"customerredirecturl":"https://www.paysafecard.com/etc",
"requesttypedescription":"ORDER",
"settlestatus":"0",
"operatorname":"webservices@example.com",
"livestatus":"0",
"paysafeminage":"18",
"paysafekyclevel":"SIMPLE",
"paysafecountryrestriction":"DE",
"paysafeid":"23842"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<customer>
<redirecturl>https://www.paysafecard.com/etc</redirecturl>
</customer>
<transactionreference>1-2-345</transactionreference>
<billing id="000001">
<payment type="PAYSAFECARD">
<paysafe>
<!--Elements only returned if submitted in the request-->
<minage>18</minage>
<kyclevel>SIMPLE</kyclevel>
<countryrestriction>DE</countryrestriction>
</paysafe>
</payment>
</billing>
<timestamp>2014-11-27 12:08:04</timestamp>
<settlement>
<settleduedate>2014-11-27</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<paysafe id="23842"/>
</response>
<secrand>vSQ</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
customerredirecturl XPath: /customer/redirecturl |
URL (500) | U moet de browser van de klant omleiden naar deze URL om verder te gaan met de betaling. | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". | |
paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door paysafecard aan de transactie is toegekend. U kunt deze id's opslaan voor toekomstige correspondentie met paysafecard. | |
requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "ORDER". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor het verzoek, toegewezen door Trust Payments.
U moet deze referentie indienen in het AUTH verzoek dat volgt. |
|
transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. | |
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
paysafecountryrestriction XPath: /billing/payment/paysafe/countryrestriction |
Alpha (2) |
Beperkt de verwerking van de betaling tot uitsluitend het opgegeven land (in iso2a-formaat).
bijv. "GB" voor Verenigd Koninkrijk. Klik hier voor een volledige lijst van landcodes. Teruggestuurd indien ingediend in het ORDER verzoek. |
|
paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de rekeninghouder "myPaysafe". Er zijn twee niveaus:
Teruggestuurd indien ingediend in het ORDER verzoek. |
|
paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
De minimumleeftijd van de "myPaysafe" rekeninghouder, zoals gespecificeerd in de ORDER aanvraag. Teruggestuurd indien ingediend in het ORDER verzoek. |
2. Doorverwijzen naar paysafecard
Na het succesvol indienen van een ORDER verzoek, zal uw systeem een customerredirecturl in het antwoord. Uw systeem moet de klant omleiden naar deze URL, een pagina gehost door paysafecard, om de betaling te verwerken.
Bij het testen wordt u doorgestuurd naar paysafecard's zandbakpagina, die de pagina simuleert die aan uw klanten zal worden getoond (screenshot hieronder).
De klant krijgt de keuze tussen:
- De pincode op hun kaart invoeren (ze kunnen indien nodig meerdere pincodes invoeren).
- Aanmelden bij hun "myPaysafe" account.
De klant kan de betaling uitvoeren door op de knop "Betalen" te klikken.
Als u bepaalde beperkingen opgeeft in het ORDER verzoek (bijv. een minimumleeftijd), kan de klant gedwongen worden om in te loggen op zijn "myPaysafe" account om zijn gegevens te verifiëren (bijv. om zijn leeftijd te controleren). Raadpleeg voor meer informatie paysafecard 's eigen bronnen (link naar externe site).
Indien succesvolle authenticatie
De browser van de klant wordt doorgestuurd naar de returnurl gespecificeerd in het ORDER verzoek.
De betaling is pas voltooid als u het hieronder beschreven AUTH verzoek met succes hebt verwerkt.
U moet wachten tot de klant terugkeert van paysafecard naar de returnurl gehost op uw servers alvorens verder te gaan.
Als de klant annuleert
De klant kan annuleren door op het kruisje rechtsboven te klikken. Hierdoor wordt de browser van de klant omgeleid naar de cancelurl gespecificeerd in het ORDER verzoek. U kunt dan alternatieve betalingswijzen opgeven. Als de klant het opnieuw wil proberen met paysafecard, moet u opnieuw beginnen door een nieuw ORDER Verzoek in te dienen.
3. Het verwerken van de authorisaties
Als de klant wordt doorverwezen naar de cancelurl:
Stel uw klant alternatieve betaalmethoden voor zodat hij het opnieuw kan proberen.
Als de klant wordt doorverwezen naar de returnurl:
Volg de onderstaande instructies.
AUTH verzoekvoorbeeld
Dit voorbeeld laat zien hoe een AUTH verzoek voor paysafecard wordt verwerkt.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"requesttypedescription": "AUTH",
"sitereference": "test_site12345",
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYSAFECARD"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'requesttypedescription' => 'AUTH',
'sitereference' => 'test_site12345',
'parenttransactionreference' => '72-32-20002',
'paymenttypedescription' => 'PAYSAFECARD'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"requesttypedescription": "AUTH",
"sitereference": "test_site12345",
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYSAFECARD"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescription":"AUTH",
"sitereference":"test_site12345",
"parenttransactionreference":"72-32-20002",
"paymenttypedescription":"PAYSAFECARD"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345</parenttransactionreference>
</operation>
<billing>
<payment type="PAYSAFECARD"/>
</billing>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dien in het verzoek de transactionreference van de voorgaande ORDER. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". | |
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "AUTH" zijn. | |
sitereference XPath: /operation/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. |
AUTH antwoordvoorbeeld
Hier is een voorbeeld van een AUTH antwoord voor paysafecard.
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'transactionreference': u '72-32-20004',
u 'merchantname': u 'Test Merchant',
u 'paymenttypedescription': u 'PAYSAFECARD',
u 'transactionstartedtimestamp': u '2016-12-23 15:36:31',
u 'errormessage': u 'Ok',
u 'parenttransactionreference': u '72-32-20003',
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'settleduedate': u '2017-05-30',
u 'currencyiso3a': u 'GBP',
u 'baseamount': u '2001',
u 'requesttypedescription': u 'AUTH',
u 'operatorname': u 'webservices@example.com',
u 'livestatus': u '0',
u 'settlestatus': u '0',
u 'paysafeminage': u '18',
u 'paysafekyclevel': u 'SIMPLE',
u 'paysafecountryrestriction': u 'DE',
u 'paysafeid': u '23842'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[1] =>array(19) {
["transactionreference"] => string(11) "72-32-20004"
["merchantname"] => string(13) "Test Merchant"
["paymenttypedescription"] => string(11) "PAYSAFECARD"
["transactionstartedtimestamp"] => string(19) "2016-12-23 15:36:31"
["errormessage"] => string(2) "Ok"
["parenttransactionreference"] => string(11) "72-32-20003"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["settleduedate"] => string(10) "2017-05-30"
["currencyiso3a"] => string(3) "GBP"
["baseamount"] => string(4) "2001"
["requesttypedescription"] => string(4) "AUTH"
["operatorname"] => string(23) "webservices@example.com"
["livestatus"] => string(1) "0"
["settlestatus"] => string(1) "0"
["paysafeminage"] => string(2) "18"
["paysafekyclevel"] => string(6) "SIMPLE"
["paysafecountryrestriction"] => string(2) "DE"
["paysafeid"] => string(5) "23842"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"transactionreference":"72-32-20004",
"merchantname":"Test Merchant",
"paymenttypedescription":"PAYSAFECARD",
"transactionstartedtimestamp":"2016-12-23 15:36:31",
"errormessage":"Ok",
"parenttransactionreference":"72-32-20003",
"accounttypedescription":"ECOM",
"errorcode":"0",
"settleduedate":"2017-05-30",
"currencyiso3a":"GBP",
"baseamount":"2001",
"requesttypedescription":"AUTH",
"operatorname":"webservices@example.com",
"livestatus":"0",
"settlestatus":"0",
"paysafeminage":"18",
"paysafekyclevel":"SIMPLE",
"paysafecountryrestriction":"DE",
"paysafeid":"23842"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="AUTH">
<merchant>
<merchantname>My Test Site</merchantname>
<merchantnumber>00000000</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>1-2-347</transactionreference>
<timestamp>2016-09-30 16:40:02</timestamp>
<operation>
<parenttransactionreference>1-2-346</parenttransactionreference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2016-10-01</settleduedate>
<settlestatus>100</settlestatus>
</settlement>
<billing>
<amount currencycode="GBP">100</amount>
<payment type="PAYSAFECARD">
<paysafe>
<minage>18</minage>
<kyclevel>SIMPLE</kyclevel>
<countryrestriction>DE</countryrestriction>
</paysafe>
</payment>
</billing>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<paysafe id="23842"/>
</response>
<secrand>7iNleP44</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
baseamount XPath: /billing/amount |
Numeriek (11) | Het bedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) | De Munt waarin de transactie werd verwerkt (in ISO3A-formaat). | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De transactionreference van de voorgaande ORDER. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". | |
paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door paysafecard aan de transactie is toegekend. U kunt deze id's opslaan voor toekomstige correspondentie met paysafecard. | |
requesttypedescription XPath: /@type |
Alpha (20) | De geretourneerde waarde is "AUTH". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor de transactie, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop de transactie werd verwerkt. | |
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
merchantname XPath: /merchant/merchantname |
Alfanumeriek (255) |
Dit zijn gegevens die verband houden met de rekening die is gebruikt om de transactie te verwerken.
Als u deze velden wilt wijzigen, neem dan contact op met ons Support Team. Hangt af van uw account configuratie. |
|
paysafecountryrestriction XPath: /billing/payment/paysafe/countryrestriction |
Alpha (2) |
Beperkt de verwerking van de betaling tot uitsluitend het opgegeven land (in iso2a-formaat).
bijv. "GB" voor Verenigd Koninkrijk. Klik hier voor een volledige lijst van landcodes. Teruggestuurd indien ingediend in het ORDER verzoek. |
|
paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de rekeninghouder "myPaysafe". Er zijn twee niveaus:
Teruggestuurd indien ingediend in het ORDER verzoek. |
|
paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
De minimumleeftijd van de "myPaysafe" rekeninghouder, zoals gespecificeerd in de ORDER aanvraag. Teruggestuurd indien ingediend in het ORDER verzoek. |
Meldingen
Voordat u begint met testen, raden wij u aan contact op te nemen met ons Support Team en te verzoeken dat op uw account regels worden ingeschakeld die URL-kennisgevingen naar uw systeem sturen wanneer een betaling is geautoriseerd.
De kennisgeving configureren
Wij raden aan ten minste de volgende velden op te nemen in URL-kennisgevingen die worden verzonden op autorisatie:
- Basisbedrag (baseamount) (bijv. 10,50 pond is "1050")*.
- Hoofdbedrag (mainamount) (bijv. 10,50 pond is "10,50")*.
- Land facturatie (billingcountryiso2a)
- Munt (currencyiso3a)
- Foutcode (errorcode)
- Live Status (livestatus)
- Bestelreferentie (orderreference)
- Betalingstype (paymenttypedescription)
- Verzoektype (requesttypedescription)
- Status betaling (settlestatus)
- Site referentie (sitereference)
- Transactiereferentie (transactionreference)
- Tijdstempel start transactie (transactionstartedtimestamp)
*Kies uw voorkeursformaat.
Controleer de kennisgeving
U moet de inhoud van elke ontvangen kennisgeving controleren en dienovereenkomstig reageren door de in onze URL-kennisgevingen documentatie. In het bijzonder moet u kijken naar de settlestatus waarde:
- Als de settlestatus "100" is, betekent dit dat de betaling is goedgekeurd en het geld op uw rekening is gestort.
- Als alternatief, als de settlestatus "3" is, betekent dit dat er een fout is opgetreden en dat de betaling is geannuleerd. U kunt de errorcode om de oorzaak van de fout te bepalen.
Afwikkeling
Als de verzoeken succesvol waren, worden de fondsen onmiddellijk verrekend nadat de klant de betaling heeft voltooid. U kunt paysafecard transacties niet meer annuleren of anderszins bijwerken nadat u het AUTH verzoek heeft ingediend.
Payouts
Je kunt Payout verzoeken verwerken met de Webservices API om geld over te maken naar de "myPaysafe" rekening van de klant.
U moet een paysafecard CFT Merchant Number gekoppeld hebben aan uw Trust Payments account. Als u niet zeker weet of uw handelaarsnummer dit ondersteunt, raden wij u aan contact op te nemen met paysafecard voor opheldering. Zorg er bovendien voor dat u de richtlijnen van paysafecard volgt voordat u verder gaat.
Er zijn twee methoden om de rekening van de klant in het verzoek te identificeren. U kunt ervoor kiezen een van beide in te dienen:
- customeraccountnumber en customeraccountnumbertype (zoals in de onderstaande voorbeelden)
- OF de billingemail
Na een succesvolle Payout wordt het geld onmiddellijk overgemaakt naar de "myPaysafe" rekening van de klant. U kunt niet annuleren of anderszins paysafecard Payouts bijwerken na afwikkeling.
Raadpleeg de onderstaande voorbeelden en het veldschema om te leren hoe je een Payout verzoek naar Trust Payments opstelt en wat je in het antwoord kunt verwachten.
Payout verzoekvoorbeeld
Dit voorbeeld laat zien hoe een Payout verzoek voor paysafecard wordt verwerkt.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"requesttypedescription": "REFUND",
"sitereference": "test_site12345",
"accounttypedescription": "CFT",
"billingid": "000001",
"currencyiso3a": "GBP",
"baseamount": "2001",
"paymenttypedescription": "PAYSAFECARD",
"billingdob": "2012-01-26",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"customeraccountnumbertype": "ACCOUNT",
"customeraccountnumber": "123456789012"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'requesttypedescription' => 'REFUND',
'sitereference' => 'test_site12345',
'accounttypedescription' => 'CFT',
'billingid' => '000001',
'currencyiso3a' => 'GBP',
'baseamount' => '2001',
'paymenttypedescription' => 'PAYSAFECARD',
'billingdob' => '2012-01-26',
'billingfirstname' => 'Joe',
'billinglastname' => 'Bloggs',
'customeraccountnumbertype' => 'ACCOUNT',
'customeraccountnumber' => '123456789012'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"requesttypedescription":"REFUND",
"sitereference":"test_site12345",
"accounttypedescription":"CFT",
"billingid":"000001",
"currencyiso3a":"GBP",
"baseamount":"2001",
"paymenttypedescription":"PAYSAFECARD",
"billingdob":"2012-01-26",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"customeraccountnumbertype":"ACCOUNT",
"customeraccountnumber":"123456789012"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescription":"REFUND",
"sitereference":"test_site12345",
"accounttypedescription":"CFT",
"billingid":"000001",
"currencyiso3a":"GBP",
"baseamount":"2001",
"paymenttypedescription":"PAYSAFECARD",
"billingdob":"2012-01-26",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"customeraccountnumbertype":"ACCOUNT",
"customeraccountnumber":"123456789012"
}]
}'
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
<billing id="000001">
<amount currencycode="GBP">2001</amount>
<payment type="PAYSAFECARD"/>
<dob>2012-01-26</dob>
<name>
<first>Joe</first>
<last>Bloggs</last>
</name>
</billing>
<customer>
<accountnumber type="ACCOUNT">123456789012</accountnumber>
</customer>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De waarde in het verzoek moet "CFT" zijn. | |
baseamount XPath: /billing/amount |
Numeriek (11) |
Het bedrag van de Payout in basiseenheden, zonder komma's of decimalen, dus €10 wordt ingediend als 1000. Deze waarde moet groter zijn dan nul. |
|
billingdob XPath: /billing/dob |
Datum JJJJ-MM-DD | Geboortedatum van de klant. | |
billingfirstname XPath: /billing/name/first |
Alfanumeriek, inclusief symbolen (127) |
Voornaam van de klant. | |
billingid XPath: /billing/@id |
Alfanumeriek (100) |
Een door u opgegeven id, gebruikt om de klant te identificeren.
U moet altijd een billingid:
|
|
billinglastname XPath: /billing/name/last |
Alfanumeriek, inclusief symbolen (127) |
Achternaam van de klant. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie zal worden verwerkt (in ISO3A-formaat). Voor een lijst van Munt codes die worden ondersteund door paysafecard, zie de lijst bovenaan deze pagina. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". | |
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "REFUND" zijn. | |
sitereference XPath: /operation/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. | |
billingemail XPath: /billing/email |
E-mail (255) |
Dit moet het e-mailadres zijn dat de klant heeft gebruikt om zich te registreren voor "myPaysafe". Vereist indien customeraccountnumber en customeraccountnumbertype niet ingediend. |
|
customeraccountnumber XPath: /customer/accountnumber |
Numeriek (12) |
Id van de "myPaysafe" account van de klant. Vereist indien billingemail niet ingediend. |
|
customeraccountnumbertype XPath: /customer/accountnumber/@type |
Alfa (7) |
De waarde in het verzoek moet "ACCOUNT" zijn. Vereist indien billingemail niet ingediend. |
Payout antwoordvoorbeeld
Hier is een voorbeeld van een geslaagd Payout antwoord voor paysafecard.
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'requesttypedescription': u 'REFUND',
u 'acquirertransactionreference': u '1234-5678-9012-3456',
u 'baseamount': u '2001',
u 'currencyiso3a': u 'GBP',
u 'paymenttypedescription': u 'PAYSAFECARD',
u 'customeraccountnumbertype': u 'ACCOUNT',
u 'maskedcustomeraccountnumber': u '123456##9012',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'merchantnumber': u '00000000',
u 'operatorname': u 'webservices@example.com',
u 'accounttypedescription': u 'CFT',
u 'paysafeid': u '23843',
u 'settleduedate': u '2022-02-08',
u 'settlestatus': u '100',
u 'transactionstartedtimestamp': u '2022-02-08 14:39:18',
u 'transactionreference': u '1-2-347'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[1] =>array(19) {
["requesttypedescription"] => string(6) "REFUND"
["acquirertransactionreference"] => string(19) "1234-5678-9012-3456"
["baseamount"] => string(4) "2001"
["currencyiso3a"] => string(3) "GBP"
["paymenttypedescription"] => string(11) "PAYSAFECARD"
["customeraccountnumbertype"] => string(7) "ACCOUNT"
["maskedcustomeraccountnumber"] => string(12) "123456##9012"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["merchantnumber"] => string(8) "00000000"
["operatorname"] => string(23) "webservices@example.com"
["accounttypedescription"] => string(3) "CFT"
["paysafeid"] => string(5) "23843"
["settleduedate"] => string(10) "2022-02-08"
["settlestatus"] => string(3) "100"
["transactionstartedtimestamp"] => string(19) "2022-02-08 14:39:18"
["transactionreference"] => string(7) "1-2-347"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"requesttypedescription":"REFUND",
"acquirertransactionreference":"1234-5678-9012-3456",
"baseamount":"2001",
"currencyiso3a":"GBP",
"paymenttypedescription":"PAYSAFECARD",
"customeraccountnumbertype":"ACCOUNT",
"maskedcustomeraccountnumber":"123456##9012",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"merchantnumber":"00000000",
"operatorname":"webservices@example.com",
"accounttypedescription":"CFT",
"paysafeid":"23843",
"settleduedate":"2022-02-08",
"settlestatus":"100",
"transactionstartedtimestamp":"2022-02-08 14:39:18",
"transactionreference":"1-2-347"
}],
"secrand":"789"
}
<responseblock version="3.67">
<requestreference>X19vnxntc</requestreference>
<response type="REFUND">
<acquirertransactionreference>1234-5678-9012-3456</acquirertransactionreference>
<billing>
<amount currencycode="GBP">2001</amount>
<payment type="PAYSAFECARD"/>
</billing>
<customer>
<accountnumber type="ACCOUNT">123456##9012</accountnumber>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<merchantnumber>00000000</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
</operation>
<paysafe id="23843"/>
<settlement>
<settleduedate>2022-02-08</settleduedate>
<settlestatus>100</settlestatus>
</settlement>
<timestamp>2022-02-08 14:39:18</timestamp>
<transactionreference>1-2-347</transactionreference>
</response>
<secrand>789</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "CFT". | |
acquirertransactionreference XPath: /acquirertransactionreference |
Alfanumeriek, inclusief symbolen (127) | Unieke Transactiereferentie toegewezen door paysafecard. | |
baseamount XPath: /billing/amount |
Numeriek (11) | Het bedrag van de Payout in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) | De Munt waarin de transactie werd verwerkt (in ISO3A-formaat). | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". | |
paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door paysafecard aan de transactie is toegekend. U kunt deze id's opslaan voor toekomstige correspondentie met paysafecard. | |
requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "REFUND". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor de transactie, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop de transactie werd verwerkt. | |
customeraccountnumbertype XPath: /customer/accountnumber/@type |
Alfa (7) |
De geretourneerde waarde is "ACCOUNT". Wordt alleen geretourneerd indien ingediend in het verzoek. |
|
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
maskedcustomeraccountnumber XPath: /customer/accountnumber |
Numeriek & # (20) |
Gemaskeerde id van de "myPaysafe" account van de klant. Wordt alleen geretourneerd indien ingediend in het verzoek. |
|
merchantname XPath: /merchant/merchantname |
Alfanumeriek (255) |
Dit zijn gegevens die verband houden met de rekening die is gebruikt om de transactie te verwerken.
Als u deze velden wilt wijzigen, neem dan contact op met ons Support Team. Hangt af van uw account configuratie. |
|
merchantnumber XPath: /merchant/merchantnumber |
Alfanumeriek (32) |
Het handelaarsnummer dat werd gebruikt om de transactie te verwerken. Verstrekt door de wervende bank. Hangt af van uw account configuratie. |
Aanvullende opmerkingen
Fraudepreventie
Fraude en dubbele controles
Fraude- en duplicaatcontroles worden niet uitgevoerd op paysafecard transacties.
Adres Verificatie Service (AVS) controles
AVS controles kunnen niet worden uitgevoerd op paysafecard transacties.
Geblokkeerde kaarten
paysafecards kunnen worden geblokkeerd om alle verdere aankopen op verzoek van de klant te voorkomen.
Klik hier voor meer informatie (link naar externe site).
Als de klant zijn PIN-code niet invoert
Na het uitvoeren van het verzoek ORDER en het ontvangen van een succesvol antwoord, heeft de klant 30 minuten om zijn betalingsgegevens in te voeren op de website paysafecard, waarna de betaling door paysafecard als "vervallen" wordt gemarkeerd en de klant opnieuw moet beginnen met een nieuwe ORDER.
Type rekening
Alleen "ECOM" (e-commerce) wordt ondersteund als rekeningtype voor paysafecard transacties. De klant moet bij de aankoop aanwezig zijn om zijn PIN-code in te voeren of om zich aan te melden op zijn rekening.
iframes
De paysafecard-gehoste pagina kan worden gehost in een iframe.
Sta altijd verticaal scrollen of dynamische grootte toe. Maximale hoogte van 840px.
De paysafecard-betaalpagina wordt automatisch geoptimaliseerd voor mobiele apparaten.
Als een klant een apparaat gebruikt met een resolutie met een kleinere breedte dan 600px, wordt automatisch een voor mobiele apparaten geoptimaliseerd betalingspaneel getoond. Dit is ook het geval als de ingesloten iframe een kleinere breedte heeft dan 600px.