In dit artikel wordt uitgelegd hoe u de automatische incasso kunt inschakelen voor landen die lid zijn van de Single Euro Payments Area (SEPA). Als u SEPA Direct Debit selecteert, voeren klanten hun IBAN/BIC gegevens in, waarna het bedrag automatisch van de bankrekening van de gebruiker wordt afgeschreven. Zodra de betaling is ingediend, ontvangt de handelaar een URL-kennisgeving en kan de aankoop worden geleverd.
Ondersteunde landen | AT, BE, CY, DE, EE, ES, FI, FR, GR, IE, IT, LT, LU, LV, MC, MT, NL, PT, SI, SK |
Ondersteunde munteenheden | EUR |
Terugbetalingen |
Alleen Payouts wordt ondersteund (toegestaan voor maximaal 365 dagen). |
Terugboekingen |
Betalingen kunnen worden teruggevorderd. |
Zero-authorisation |
Niet ondersteund. |
Terugkerende betalingen |
Niet ondersteund. |
Configuratie
Neem contact op met uw accountmanager om SEPA Direct Debit in te schakelen op uw rekening.
Er wordt een test sandbox account verstrekt, die u nodig heeft bij het testen van uw implementatie.
Procesoverzicht
-
Initieer de klant
- De klant gaat akkoord met een betaling via SEPA Direct Debit op de website van de handelaar.
- Merchant dient AUTH verzoek in om de sessie te starten, inclusief de successfulurlredirect en errorurlredirect.
- Merchant ontvangt AUTH antwoord, inclusief redirecturl.
-
Doorverwijzing naar de bank van de klant
- Merchant stuurt de browser van de klant door naar de redirecturl.
- De klant volgt de instructies op de gehoste pagina's van zijn bank om de betaling te autoriseren.
- Indien succesvol, wordt de browser doorgestuurd naar de successfulurlredirect, een door de handelaar gehoste pagina die de bevestiging van de betaling weergeeft.
- Als er een probleem is geweest met de betaling, wordt de browser doorgestuurd naar de errorurlredirect, een door de handelaar gehoste pagina die de klant een foutmelding geeft.
-
Voltooiing van de betaling
- Op een later tijdstip neemt de bank van de klant contact op met Trust Payments met de bevestiging dat het geld is betaald.
- Trust Payments zal een URL-kennisgeving naar het systeem van de handelaar sturen om te bevestigen dat het geld is betaald.
- De handelaar ontvangt de kennisgeving en antwoordt om Trust Payments te informeren dat de kennisgeving met succes is ontvangen.
1. Initieer de klant
Wanneer de klant ervoor kiest om met SEPA Direct Debit te betalen, moet uw systeem een AUTH verzoek uitvoeren en, indien succesvol, de browser van de klant omleiden naar de URL die in het antwoord wordt geretourneerd.
AUTH verzoek
Het onderstaande voorbeeld betreft een SEPA Direct Debit AUTH verzoek:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"currencyiso3a": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"successfulurlredirect": "https://yourwebsite.com",
"errorurlredirect": "https://yourwebsite.com",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}
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(
'currencyiso3a' => 'EUR',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'SEPADD',
'successfulurlredirect' => 'https://yourwebsite.com',
'errorurlredirect' => 'https://yourwebsite.com',
'billingemail' => 'customer@email.com',
'billingfirstname' => 'Joe',
'billinglastname' => 'Bloggs',
'billingcountryiso2a' => 'BE',
'iban' => 'MT00000000000000000000000000'
);
$api = Securetradingapi($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": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"successfulurlredirect": "https://www.example.com/success",
"errorurlredirect": "https://www.example.com/error",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["AUTH"],
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"SEPADD",
"successfulurlredirect":"https://www.example.com/success",
"errorurlredirect":"https://www.example.com/error",
"billingemail":"customer@email.com",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"billingcountryiso2a":"BE",
"iban":"MT00000000000000000000000000"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<successfulurlredirect>https://www.example.com/success</successfulurlredirect>
<errorurlredirect>https://www.example.com/error</errorurlredirect>
</merchant>
<billing>
<email>customer@email.com</email>
<name>
<first>Joe</first>
<last>Bloggs</last>
</name>
<country>BE</country>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<iban>MT00000000000000000000000000</iban>
</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 (13) | 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. (De maximumlengte kan variëren, afhankelijk van uw wervende bank - Neem contact op met uw bank voor meer informatie) | |
billingcountryiso2a XPath: /billing/country |
Alpha (2) |
Het land voor het factuuradres van de klant. Dit moet in ISO2A-formaat zijn. Voor een lijst met landcodes die door SEPA Direct Debit worden ondersteund, raadpleegt u de lijst bovenaan deze pagina. |
|
billingemail XPath: /billing/email |
E-mail (255) |
Het E-mailadres facturatie adres van de klant. Maximale lengte van 255 (maximaal 64 tekens vóór het "@"-teken). |
|
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 door SEPA Direct Debit worden ondersteund, zie de lijst bovenaan deze pagina. |
|
errorurlredirect XPath: /merchant/errorurlredirect |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na een fout op de gehoste pagina's van zijn bank. | |
iban XPath: /billing/payment/iban |
Alfanumeriek (255) | De klant IBAN. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "SEPADD". | |
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. | |
successfulurlredirect XPath: /merchant/successfulurlredirect |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na een succesvolle autorisatie door zijn bank. | |
billingprefixname XPath: /billing/name/prefix |
Alfanumeriek, inclusief symbolen (25) |
Het voorvoegsel van de factuurnaam van de klant (bv. De heer, Juffrouw, Dr.). Ten minste één van de velden met de factureringsnaam is verplicht. |
|
billingfirstname XPath: /billing/name/first |
Alfanumeriek, inclusief symbolen (127) |
De klant Voornaam facturatie. Ten minste één van de velden met de factureringsnaam is verplicht. |
|
billingmiddlename XPath: /billing/name/middle |
Alfanumeriek, inclusief symbolen (127) |
De middelste factureringsnaam of -namen van de klant. Ten minste één van de velden met de factureringsnaam is verplicht. |
|
billinglastname XPath: /billing/name/last |
Alfanumeriek, inclusief symbolen (127) |
De klant Achternaam facturatie. Ten minste één van de velden met de factureringsnaam is verplicht. |
|
billingsuffixname XPath: /billing/name/suffix |
Alfanumeriek, inclusief symbolen (25) |
Het achtervoegsel van de factureringsnaam van de klant (bv. Bsc). Ten minste één van de velden met de factureringsnaam is verplicht. |
|
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. |
AUTH antwoord
{
u'requestreference': u'An3ug1kap',
u'version': u'1.00',
u'responses': [{
u'transactionreference': u'23-86-113',
u'merchantname': u'Test Merchant',
u'paymenttypedescription': u'SEPADD',
u'settleduedate': u'2017-03-16',
u'baseamount': u'1050',
u'transactionstartedtimestamp': u'2017-03-16 16:25:08',
u'errormessage': u'Ok',
u'settlestatus': u'10',
u'accounttypedescription': u'ECOM',
u'errorcode': u'0',
u'redirecturl': u'https://example.com',
u'acquirertransactionreference': u'12',
u'acquirersecret': u'q9gy5ppgdyd5fh60kfe2j0f26peu2xww',
u'requesttypedescription': u'AUTH',
u'mandatereference': u'A-zZa1234567890/+*()/,.',
u'acquirerresponsemessage': u'PENDING',
u'operatorname': u'webservices@example.com',
u'livestatus': u'0',
u'currencyiso3a': u'EUR'
}]
}
array(3) {
["requestreference"] => string(9) "A0345jmuw"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(19) {
["transactionreference"] => string(9) "23-86-113"
["merchantname"] => string(4) "Test Merchant"
["paymenttypedescription"] => string(6) "SEPADD"
["settleduedate"] => string(10) "2017-03-16"
["baseamount"] => string(4) "1050"
["transactionstartedtimestamp"] => string(19) "2017-03-16 16:25:08"
["errormessage"] => string(2) "Ok"
["settlestatus"] => string(2) "10"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["redirecturl"] => string(107) "https://example.com"
["acquirertransactionreference"] => string(2) "12"
["acquirersecret"] => string(32) "q9gy5ppgdyd5fh60kfe2j0f26peu2xww"
["requesttypedescription"] => string(4) "AUTH"
["mandatereference"] => string(23) "A-zZa1234567890/+*()/,."
["acquirerresponsemessage"] => string(7) "PENDING"
["operatorname"] => string(11) "webservices@example.com"
["livestatus"] => string(1) "0"
["currencyiso3a"] => string(3) "EUR"
}
}
}
{
"requestreference":"W23-fjgvn3d9",
"version":"1.00",
"response":[{
"transactionreference":"23-86-113",
"merchantname":"Test Merchant",
"paymenttypedescription":"SEPADD",
"settleduedate":"2017-03-16",
"baseamount":"1050",
"transactionstartedtimestamp":"2017-03-16 16:25:08",
"errormessage":"Ok",
"settlestatus":"10",
"accounttypedescription":"ECOM",
"errorcode":"0",
"redirecturl":"https://example.com",
"acquirertransactionreference":"12",
"acquirersecret":"q9gy5ppgdyd5fh60kfe2j0f26peu2xww",
"requesttypedescription":"AUTH",
"mandatereference":"A-zZa1234567890\/+*()\/,.",
"acquirerresponsemessage":"PENDING",
"operatorname":"webservices@example.com",
"livestatus":"0",
"currencyiso3a":"EUR"
}]
}
<responseblock version="3.67">
<requestreference>Xd4nk260v</requestreference>
<response type="AUTH">
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>44-86-102</transactionreference>
<timestamp>2017-03-16 17:34:16</timestamp>
<acquirersecret>gfc8mx0p2fx26f1n5tpy6mtk21naap8c</acquirersecret>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2017-03-16</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<acquirerresponsemessage>PENDING</acquirerresponsemessage>
<billing>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<mandatereference>A-zZa1234567890/+*()/,.</mandatereference>
</payment>
</billing>
<live>0</live>
<other>
<redirecturl>https://example.com</redirecturl>
</other>
<acquirertransactionreference>4</acquirertransactionreference>
<error>
<message>Ok</message>
<code>0</code>
</error>
</response>
<secrand>Z1W</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
acquirersecret XPath: /acquirersecret |
Alfanumeriek (64) | Gebruikt door Trust Payments om het antwoord van de verwerver te verifiëren. (Uw systeem hoeft dit niet te verifiëren) | |
acquirertransactionreference XPath: /acquirertransactionreference |
Alfanumeriek, inclusief symbolen (127) | Uniek Transactiereferentie toegewezen door de bank van de klant. | |
baseamount XPath: /billing/amount |
Numeriek (13) | 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). Voor een lijst van Munt codes die door SEPA Direct Debit worden ondersteund, zie de lijst bovenaan deze pagina. |
|
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 "SEPADD". | |
redirecturl XPath: /other/redirecturl |
URL (255) | Leid de browser van de klant om naar deze URL, zodat hij de betaling kan voltooien op de gehoste pagina's van zijn bank. | |
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) | Hiermee kunt u de status van de betaling bepalen. Raadpleeg het gedeelte " Omgaan met het antwoord " hieronder voor informatie over hoe u dit veld het best kunt interpreteren. | |
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. | |
acquirerresponsemessage XPath: /acquirerresponsemessage |
Alfanumeriek (255) |
Gebruikt door uw verwerver om het resultaat van het verzoek aan te geven. Dit varieert afhankelijk van uw wervende bank. Neem contact op met uw bank voor meer informatie. |
|
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. Om deze velden te wijzigen, gelieve neem contact op met ons Support Team. Hangt af van uw account configuratie. |
Behandeling van het antwoord
De settlestatus teruggestuurd in het AUTH antwoord wordt gebruikt om de status van de SEPA Direct Debit betaling te bepalen:
Als de settlestatus is "10", is de betaling in behandeling. afwikkeling
- Het geld is nog niet op uw bankrekening gestort.
- De volgende stap is het omleiden van de browser van de klant naar de redirecturl om de betaling te voltooien.
Het geld wordt pas op uw rekening gestort als de klant wordt doorgestuurd naar de pagina's van zijn bank om de betaling te voltooien. Lees verder voor meer informatie.
- Wanneer er een update is van de Status betaling van de AUTH, ontvangt u een URL-kennisgeving om u te informeren dat de settlestatus is bijgewerkt tot "3" of "100".
- Nadere informatie over de kennisgevingen is hieronder te vinden.
Als de settlestatus is "3", de betaling is geannuleerd.
- De betaling is geweigerd, of er is een fout opgetreden.
- Om meer te weten te komen over waarom de betaling niet is gelukt, moet u kijken naar de errorcode. bijv. "70000" geeft aan dat de betaling is geweigerd. Klik hier voor een volledige lijst met foutcodes.
Naast het bovenstaande bevelen wij ook aan na de betaling aanvullende controles te verrichten.
2. Doorverwijzing naar de bank van de klant
Uw systeem moet de browser van de klant omleiden naar de redirecturl, een door hun bank gehoste pagina om de betaling te verwerken.
De redirecturl binnen een iframe. Hierdoor wordt de inhoud niet correct weergegeven en kan de betaling uiteindelijk niet succesvol worden afgerond.
Op een later tijdstip wordt de klant teruggestuurd naar de successfulurlredirect of de errorurlredirect verstrekt in het AUTH verzoek.
Als de klant wordt doorverwezen naar de successfulurlredirect:
De klant heeft de vereiste stappen op de pagina's van zijn bank met succes doorlopen.
Aanbevolen acties: Toon bevestiging dat de betaling succesvol was.
Als de klant wordt doorverwezen naar de errorurlredirect:
De klant heeft een probleem ondervonden waardoor hij de betaling niet heeft kunnen voltooien.
Aanbevolen acties: Informeer de klant dat er een probleem was met de betaling, waarbij voldoende transactiedetails worden weergegeven zodat de klant de betalingspoging kan navragen.
Bij het testen krijgt u een zandbakpagina te zien. Om een testtransactie te voltooien, moet u de instructies op het scherm volgen. Neem contact op met uw accountmanager voor testgegevens die u in de zandbak kunt invoeren.
3. Voltooiing van de betaling
Zodra de klant terugkeert van de gehoste pagina van zijn bank naar de successfulurlredirect of errorurlredirect gehost op uw site, moet u respectievelijk een bevestigings- of foutmelding weergeven.
Controleer of er regels voor URL-omleidingen zijn ingeschakeld in de Regelbeheer op uw site referentie(s), aangezien deze in strijd kunnen zijn met en voorrang kunnen hebben op de successfulurlredirect en errorurlredirect velden in het AUTH verzoek.
Zodra een betaling is geautoriseerd, wordt het geld op een later tijdstip verrekend, zoals bepaald door de bank van de klant.
Het afwikkeling proces voor SEPA Direct Debit verschilt van het standaardproces dat wordt gevolgd bij betaalmethoden met een kaart.
De afwikkeling kennisgeving mag niet onmiddellijk na de verwerking van de AUTH
In het onwaarschijnlijke geval dat de betaling na 7 dagen nog in behandeling is bij afwikkeling (settlestatus "10"), zal dit worden ingepland voor onderzoek en zullen wij contact met u opnemen voor verdere informatie.
Voordat u begint met testen, raden wij u aan contact op te nemen met ons Support Team en te verzoeken dat regels worden ingeschakeld op uw account, die URL-kennisgevingen naar uw systeem sturen in de volgende scenario's:
- Wanneer een betaling is goedgekeurd.
- Als de fondsen vereffend zijn.
Configuratie van de autorisatie melding
Wij raden u aan ten minste de volgende velden op te nemen in uw autorisatie kennisgeving:
- Antwoordbericht aankoper (acquirerresponsemessage)
- 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.
Configuratie van de afwikkeling melding
Wij raden u aan de volgende velden op te nemen in uw afwikkeling kennisgeving:
- Status betaling (settlestatus)
- Site referentie (sitereference)
- Transactiereferentie (transactionreference)
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 bijgewerkte settlestatus waarde:
- Op autorisatie: Als de settlestatus "0", "1" of "10" is, is de betaling geautoriseerd en hoeft u op dit moment geen verdere actie te ondernemen. Waarden van "2" of "3" geven echter aan dat de fondsen niet gepland voor afwikkeling (opgeschort en geannuleerd, respectievelijk).
- Op afwikkeling: Als de settlestatus is bijgewerkt tot "100", betekent dit dat het geld is vereffend. Als dit echter is bijgewerkt tot "3", betekent dit dat er een probleem is geweest en dat de betaling vervolgens is geannuleerd.
Geannuleerde transacties (settlestatus "3") kan op een later tijdstip worden afgewikkeld. In situaties waarin de klant de voor de uitvoering van de betaling vereiste stappen heeft voltooid, wordt de settlestatus wordt bijgewerkt tot "100" om aan te geven dat het geld naar uw rekening is overgemaakt.
Als u contact hebt opgenomen met het Support Team om afwikkeling meldingen te configureren (zoals hierboven beschreven), wordt u op de hoogte gebracht wanneer dit gebeurt.
Test
U moet uw oplossing testen voordat u live betalingen kunt gaan verwerken. Testtransacties worden verwerkt via uw test site referentie.
Vereisten
U moet contact opnemen met ons Support Team en de gegevens van uw testaccount doorgeven. Wij zullen dan uw test site referentie configureren om rechtstreeks verbinding te maken met een externe testomgeving.
Bij het uitvoeren van testtransacties zal de redirect URL in het antwoord op AUTH uw browser omleiden naar de testomgeving om een betaling te simuleren. Verder is het proces precies hetzelfde als bij live betalingen.
Payouts
Het is mogelijk om Payouts uit te voeren via SEPA Direct Debit. Het verzoek en antwoord voor SEPA Direct Debit Payouts volgen dezelfde veldspecificatie als in onze standaard Payout documentatie. Klik hier voor meer informatie.
Gebruik van de bovengeschikte transactie
Het volgende is een voorbeeldverzoek voor het verwerken van een Payout, waarbij alle vereiste betalingsgegevens worden geërfd van het AUTH verzoek waarnaar wordt verwezen:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"accounttypedescription": "CFT",
"parenttransactionreference": "1-2-345678"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'test_site12345',
'accounttypedescription' => 'CFT',
'parenttransactionreference' => '1-2-345678'
);
$api = Securetradingapi($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": [{
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"accounttypedescription": "CFT",
"parenttransactionreference": "1-2-345678"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescriptions":["REFUND"],
"sitereference":"test_site12345",
"accounttypedescription":"CFT",
"parenttransactionreference":"1-2-345678"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345</parenttransactionreference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Zonder bovengeschikte
Als u een Payout uitvoert zonder te verwijzen naar een eerder verwerkt SEPA Direct Debit AUTH verzoek, moet u ervoor zorgen dat het nieuwe verzoek de volgende aanvullende verplichte velden bevat:
- billingcountryiso2a
- billingemail
- Ten minste één van het volgende: billingprefix, billingfirstname, billingmiddlename, billinglastname, billingsuffixname
- iban
Voorbeeld:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout = {
"currencyiso3a": "EUR",
"requesttypedescriptions": ["REFUND"],
"accounttypedescription": "CFT",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"billingemail": "customer@email.com",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}
strequest = securetrading.Request()
strequest.update(payout)
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' => 'EUR',
'requesttypedescriptions' => array('REFUND'),
'accounttypedescription' => 'CFT',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'SEPADD',
'billingemail' => 'customer@email.com',
'successfulurlredirect' => 'https://yourwebsite.com',
'errorurlredirect' => 'https://yourwebsite.com',
'billingfirstname' => 'Joe',
'billinglastname' => 'Bloggs',
'billingcountryiso2a' => 'BE',
'iban' => 'MT00000000000000000000000000'
);
$api = Securetradingapi($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": "EUR",
"requesttypedescriptions": ["REFUND"],
"accounttypedescription": "CFT",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "SEPADD",
"billingemail": "customer@email.com",
"successfulurlredirect": "https://www.example.com/success",
"errorurlredirect": "https://www.example.com/error",
"billingfirstname": "Joe",
"billinglastname": "Bloggs",
"billingcountryiso2a": "BE",
"iban": "MT00000000000000000000000000"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["REFUND"],
"accounttypedescription":"CFT",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"SEPADD",
"billingemail":"customer@email.com",
"successfulurlredirect":"https://www.example.com/success",
"errorurlredirect":"https://www.example.com/error",
"billingfirstname":"Joe",
"billinglastname":"Bloggs",
"billingcountryiso2a":"BE",
"iban":"MT00000000000000000000000000"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<email>customer@email.com</email>
<name>
<first>Joe</first>
<last>Bloggs</last>
</name>
<country>BE</country>
<amount currencycode="EUR">1050</amount>
<payment type="SEPADD">
<iban>MT00000000000000000000000000</iban>
</payment>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>CFT</accounttypedescription>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. Click here for a full list.