A PaysafeCard is een prepaid voucher, uitgegeven door het betalingsbedrijf PaySafe, die uw klanten kunnen kopen bij verkooppunten over de hele wereld (bv. PayPoint-verkooppunten). Elke voucher wordt geïdentificeerd door een unieke PIN-code. PaysafeCard is vooral populair in de sectoren online gaming, streaming en digitale diensten.
Klanten kunnen optioneel een PaysafeCard registreren om hun pincodes op te slaan, tegoeden van vouchers samen te voegen, hun transactiegeschiedenis te bekijken en nog veel meer.
Om een aankoop af te ronden, kunnen klanten hun voucher-PIN-code invoeren bij de kassa of inloggen op hun PaysafeCard om geld uit te geven van hun saldo.
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
Neem contact op met je accountmanager om PaysafeCard in te schakelen op je account.
Je krijgt een test sandbox account die je nodig hebt om je implementatie te testen.
Procesoverzicht
Wat zal de klant zien?
- Tijdens het afrekenproces presenteert uw website PaysafeCard als betaalmethode.
- De klant selecteert het gewenste afleveradres op de afrekenpagina en kiest voor betaling met PaysafeCard.
- De klant wordt doorverwezen naar Paysafe, waar hij zijn pincode(s) kan invoeren of kan inloggen op zijn PaysafeCard .
- De klant controleert zijn bestelling en gaat akkoord met de betaling.
- De klant wordt doorgestuurd naar uw website, waar een bevestiging wordt weergegeven (bv. "Betaling geslaagd").
Hoe werkt het achter de schermen?
De PaysafeCard kan worden opgesplitst in drie hoofdonderdelen, zoals hieronder weergegeven:
-
Initieer de klant
- De klant gaat akkoord met een betaling met PaysafeCard op de website van de handelaar.
- 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 pincode(s) op zijn PaysafeCard in of meldt zich aan.
- Als dit lukt, wordt de browser van de klant omgeleid naar de returnurl.
Als de 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 om met PaysafeCard te betalen, moet uw systeem een ORDER uitvoeren en het 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. Volledige lijst met domeinen weergeven.
Specificatie veld
Veld | Formaat | Beschrijving | |
Verplicht | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Alleen "ECOM" (e-commerce) wordt ondersteund. |
Verplicht | 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. |
Verplicht | billingid XPath: /billing/@id |
Alfanumeriek (100) |
Een door u opgegeven id, gebruikt om de klant te identificeren.
U moet altijd een billingid:
|
Verplicht | 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 Paysafe bevindt. |
Verplicht | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie wordt verwerkt. PaysafeCard kunnen in de volgende munteenheden worden verwerkt:
ARS, AUD, BGN, CAD, CHF, CZK, DKK, EUR, GBP, HUF, MXN, NOK, NZD, PEN, PLN, RON, SEK, TRY, USD, UYU |
Verplicht | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". |
Verplicht | requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "ORDER" zijn. |
Verplicht | returnurl XPath: /merchant/returnurl |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na bevestiging van de betaling door Paysafe. |
Verplicht | 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. |
Optioneel | 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. |
Optioneel | 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. |
Optioneel | paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de PaysafeCard . Er zijn twee niveaus:
|
Optioneel | paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
Bepaalt de minimumleeftijd van de PaysafeCard .
Als u bijvoorbeeld alleen 18-plussers wilt toelaten, vul dan in dit veld "18" in. |
ORDER antwoordvoorbeeld
{
'requestreference': 'A0bxh87wt',
'version': '1.00',
'responses': [{
'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'
}]
}
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 | |
Geretourneerd | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". |
Geretourneerd | customerredirecturl XPath: /customer/redirecturl |
URL (500) | U moet de browser van de klant omleiden naar deze URL om verder te gaan met de betaling. |
Geretourneerd | errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
|
Geretourneerd | errormessage XPath: /error/message |
Alfanumeriek (255) | Dit is het bericht dat overeenkomt met de bovenstaande code. |
Geretourneerd | livestatus XPath: /live |
Numeriek (1) |
|
Geretourneerd | operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. |
Geretourneerd | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". |
Geretourneerd | paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door Paysafe aan de transactie is toegekend. Je kunt deze id's opslaan voor toekomstige correspondentie met Paysafe. |
Geretourneerd | requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "ORDER". |
Geretourneerd | settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. |
Geretourneerd | settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
Geretourneerd | 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. |
Geretourneerd | transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. |
Conditioneel | 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. |
Conditioneel | 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. Bekijk de volledige lijst met landcodes. Teruggestuurd indien ingediend in het ORDER verzoek. |
Conditioneel | paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de PaysafeCard . Er zijn twee niveaus:
Teruggestuurd indien ingediend in het ORDER verzoek. |
Conditioneel | paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
De minimumleeftijd van de PaysafeCard , zoals gespecificeerd in de ORDER . Teruggestuurd indien ingediend in het ORDER verzoek. |
2. Doorverwijzen naar Paysafe
Na het succesvol indienen van een ORDER verzoek, zal uw systeem een customerredirecturl in het antwoord. Je systeem moet de klant doorverwijzen naar deze URL, een pagina gehost door Paysafe, om de betaling te verwerken.
Tijdens het testen word je doorverwezen naar de sandboxpagina van Paysafe, die de pagina simuleert die aan je klanten zal worden getoond (onderstaande schermafbeelding).
De klant krijgt de keuze tussen:
- De pincode op hun kaart invoeren (ze kunnen indien nodig meerdere pincodes invoeren).
- Inloggen op hun PaysafeCard .
De klant kan doorgaan met de betaling door de knop "Betalen" te selecteren.
Als u bepaalde beperkingen opgeeft in het ORDER (bijv. een minimumleeftijd), kan de klant gedwongen worden om in te loggen op zijn PaysafeCard om zijn gegevens te verifiëren (bijv. om zijn leeftijd te controleren).
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.
Je moet wachten tot de klant terugkeert van Paysafe naar de returnurl gehost op uw servers alvorens verder te gaan.
Als de klant annuleert
De klant kan annuleren door het kruisje rechtsboven te selecteren. Hierdoor wordt de browser van de klant doorgestuurd naar de cancelurl gespecificeerd in het ORDER VERZOEK. U kunt dan alternatieve betaalmethoden opgeven. Als de klant het opnieuw wil proberen met PaysafeCard, moet u opnieuw beginnen door een nieuw ORDER 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. Volledige lijst met domeinen weergeven.
Specificatie veld
Veld | Formaat | Beschrijving | |
Verplicht | parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dien in het verzoek de transactionreference van de voorgaande ORDER. |
Verplicht | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". |
Verplicht | requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "AUTH" zijn. |
Verplicht | 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.
{
'requestreference': 'A0dcb11e6',
'version': '1.00',
'responses': [{
'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'
}]
}
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 | |
Geretourneerd | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". |
Geretourneerd | baseamount XPath: /billing/amount |
Numeriek (11) | Het bedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. |
Geretourneerd | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) | De Munt waarin de transactie werd verwerkt (in ISO3A-formaat). |
Geretourneerd | errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
|
Geretourneerd | errormessage XPath: /error/message |
Alfanumeriek (255) | Dit is het bericht dat overeenkomt met de bovenstaande code. |
Geretourneerd | livestatus XPath: /live |
Numeriek (1) |
|
Geretourneerd | operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. |
Geretourneerd | parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De transactionreference van de voorgaande ORDER. |
Geretourneerd | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". |
Geretourneerd | paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door Paysafe aan de transactie is toegekend. Je kunt deze id's opslaan voor toekomstige correspondentie met Paysafe. |
Geretourneerd | requesttypedescription XPath: /@type |
Alpha (20) | De geretourneerde waarde is "AUTH". |
Geretourneerd | settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. |
Geretourneerd | settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
Geretourneerd | transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor de transactie, toegewezen door Trust Payments. |
Geretourneerd | transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop de transactie werd verwerkt. |
Conditioneel | 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. |
Conditioneel | 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. |
Conditioneel | 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. Bekijk de volledige lijst met landcodes. Teruggestuurd indien ingediend in het ORDER verzoek. |
Conditioneel | paysafekyclevel XPath: /billing/payment/paysafe/kyclevel |
Alfa (6) |
Specificeert het vereiste KYC-niveau voor de PaysafeCard . Er zijn twee niveaus:
Teruggestuurd indien ingediend in het ORDER verzoek. |
Conditioneel | paysafeminage XPath: /billing/payment/paysafe/minage |
Numeriek (3) |
De minimumleeftijd van de PaysafeCard , zoals gespecificeerd in de ORDER . 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 niet annuleren of anderszins bijwerken nadat u het AUTH hebt ingediend.
Payouts
Je kunt Payout verwerken met de Webservices API om geld over te maken naar de PaysafeCard van de klant.
U hebt een PaysafeCard CFT Merchant Number nodig dat gekoppeld is aan uw Trust Payments . Als u niet zeker weet of uw merchant nummer dit ondersteunt, raden we u aan contact op te nemen met Paysafe voor opheldering. Zorg er ook voor dat u de richtlijnen van Paysafe 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 op de PaysafeCard van de klant gestort. U kunt PaysafeCard Payouts na afwikkeling niet annuleren of anderszins bijwerken.
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 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. Volledige lijst met domeinen weergeven.
Specificatie veld
Veld | Formaat | Beschrijving | |
Verplicht | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De waarde in het verzoek moet "CFT" zijn. |
Verplicht | 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. |
Verplicht | billingdob XPath: /billing/dob |
Datum JJJJ-MM-DD | Geboortedatum van de klant. |
Verplicht | billingfirstname XPath: /billing/name/first |
Alfanumeriek, inclusief symbolen (127) |
Voornaam van de klant. |
Verplicht | billingid XPath: /billing/@id |
Alfanumeriek (100) |
Een door u opgegeven id, gebruikt om de klant te identificeren.
U moet altijd een billingid:
|
Verplicht | billinglastname XPath: /billing/name/last |
Alfanumeriek, inclusief symbolen (127) |
Achternaam van de klant. |
Verplicht | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie zal worden verwerkt (in ISO3A-formaat). Raadpleeg de lijst bovenaan deze pagina voor een overzicht van Munt die door PaysafeCard worden ondersteund. |
Verplicht | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "PAYSAFECARD". |
Verplicht | requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "REFUND" zijn. |
Verplicht | 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. |
Conditioneel | billingemail XPath: /billing/email |
E-mail (255) |
Dit moet het e-mailadres zijn dat de klant heeft gebruikt om zich te registreren voor zijn PaysafeCard . Geldige tekens:
Afgezien van de bovenstaande vereisten houdt ons systeem zich aan RFC 5322, dat de standaardindeling voor geldige e-mailadressen definieert. Meer informatie over RFC 5322 (link naar externe site) Vereist indien customeraccountnumber en customeraccountnumbertype niet ingediend. |
Conditioneel | customeraccountnumber XPath: /customer/accountnumber |
Numeriek (12) |
Id van de PaysafeCard van de klant. Vereist indien billingemail niet ingediend. |
Conditioneel | 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 succesvolle Payout voor PaysafeCard.
{
'requestreference': 'A0dcb11e6',
'version': '1.00',
'responses': [{
'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'
}]
}
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 | |
Geretourneerd | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "CFT". |
Geretourneerd | acquirertransactionreference XPath: /acquirertransactionreference |
Alfanumeriek, inclusief symbolen (127) | Unieke Transactiereferentie toegewezen door Paysafe. |
Geretourneerd | baseamount XPath: /billing/amount |
Numeriek (11) | Het bedrag van de Payout in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. |
Geretourneerd | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) | De Munt waarin de transactie werd verwerkt (in ISO3A-formaat). |
Geretourneerd | errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
|
Geretourneerd | errormessage XPath: /error/message |
Alfanumeriek (255) | Dit is het bericht dat overeenkomt met de bovenstaande code. |
Geretourneerd | livestatus XPath: /live |
Numeriek (1) |
|
Geretourneerd | operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. |
Geretourneerd | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "PAYSAFECARD". |
Geretourneerd | paysafeid XPath: /paysafe/@id |
Alfanumeriek (255) | Een unieke id die door Paysafe aan de transactie is toegekend. Je kunt deze id's opslaan voor toekomstige correspondentie met Paysafe. |
Geretourneerd | requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "REFUND". |
Geretourneerd | settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. |
Geretourneerd | settlestatus XPath: /settlement/settlestatus |
Numeriek (3) |
|
Geretourneerd | transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor de transactie, toegewezen door Trust Payments. |
Geretourneerd | transactionstartedtimestamp XPath: /timestamp |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop de transactie werd verwerkt. |
Conditioneel | customeraccountnumbertype XPath: /customer/accountnumber/@type |
Alfa (7) |
De geretourneerde waarde is "ACCOUNT". Wordt alleen geretourneerd indien ingediend in het verzoek. |
Conditioneel | 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. |
Conditioneel | maskedcustomeraccountnumber XPath: /customer/accountnumber |
Numeriek & # (20) |
Gemaskeerde id van de PaysafeCard van de klant. Wordt alleen geretourneerd indien ingediend in het verzoek. |
Conditioneel | 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. |
Conditioneel | 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 .
Adres Verificatie Service (AVS) controles
AVS kunnen niet worden uitgevoerd op PaysafeCard .
Vergrendelde kaarten
PaysafeCards kunnen op verzoek van de klant worden geblokkeerd om verdere aankopen te voorkomen.
Meer informatie over vergrendelde kaarten (link naar externe site).
Als de klant zijn PIN-code niet invoert
Na het uitvoeren van het ORDER en het ontvangen van een succesvol antwoord, heeft de klant 30 minuten om zijn betalingsgegevens in te voeren op de website van Paysafe, waarna de betaling door Paysafe wordt gemarkeerd als "verlopen" en de klant opnieuw moet beginnen met een nieuw ORDER.
Type rekening
Alleen "ECOM" (e-commerce) wordt ondersteund als rekeningtype voor PaysafeCard . De klant moet aanwezig zijn op het moment van aankoop om zijn pincode in te voeren of om in te loggen op zijn account.
iframes
De Paysafe-pagina kan gehost worden in een iframe.
Sta altijd verticaal scrollen of dynamische grootte toe. Maximale hoogte van 840px.
De betaalpagina van Paysafe is 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.