Net als bij andere standaardbetalingen is het mogelijk om updates uit te voeren op DCC betalingen voorafgaand aan afwikkeling, door een TRANSACTIONUPDATE verzoek in te dienen via onze Webservices API of door gebruik te maken van MyST.
Het is niet mogelijk om de Munt van de betaling te wijzigen nadat deze door de wervende bank is goedgekeurd.
Het is absoluut noodzakelijk dat alle transacties die gebruik maken van de Munt omrekeningen die door de aanbieder van de omrekeningskoers worden verstrekt, worden afgewikkeld voordat de dccexpirytimestamp (teruggestuurd in het antwoord CURRENCYRATE). Als u dit niet doet (bv. door de datum afwikkeling bij te werken) kan de klant het verkeerde bedrag betalen en kan uw overeenkomst met de aanbieder van de omrekeningskoers of de werver ongeldig worden.
Uitgesteld afwikkeling wordt NIET ondersteund voor DCC transacties.
Gedeeltelijke afwikkeling van DCC betalingen
U kunt een TRANSACTIONUPDATE verzoek indienen via onze Webservices API of MyST gebruiken om het afwikkelingsbedrag van een geautoriseerde DCC betaling bij te werken. Dit kan worden gebruikt om een transactie te verrekenen voor een lager bedrag dan aanvankelijk was geautoriseerd. Het resterende bedrag wordt door de kaartuitgever vrijgegeven zodra de autorisatie code is verlopen (meestal ongeveer 7 dagen).
Het nieuwe vereffeningsbedrag wordt gespecificeerd in de settlebaseamount veld (dit is het bedrag in de Munt van de klant). Het moet lager zijn dan het totale toegestane bedrag op Munt van de klant.
Als een gedeeltelijk afwikkeling verzoek is verwerkt en de klant de betaling heeft verricht in de Munt, wordt de oorspronkelijke omrekeningskoers van de transactie gebruikt om het respectieve afrekeningsbedrag in de Munt van de merchant te berekenen.
Het volgende is een voorbeeld van een TRANSACTIONUPDATE verzoek ingediend via onze Webservices API om het eindbedrag voor een DCC betaling te verlagen:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
update = {
"requesttypedescriptions": ["TRANSACTIONUPDATE"],
"filter":{
"sitereference": [{"value":"test_site12345"}],
"transactionreference": [{"value":"1-2-3"}]
},
"updates":{"settlebaseamount":"960"}
}
strequest = securetrading.Request()
strequest.update(update)
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('TRANSACTIONUPDATE'),
'filter' => array(
'sitereference' => array(array('value' => 'test_site12345')),
'transactionreference' => array(array('value' => '1-2-3'))
),
'updates' => array('settlebaseamount' => '960')
);
$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": [{
"requesttypedescriptions": ["TRANSACTIONUPDATE"],
"filter":{
"sitereference": [{"value":"test_site12345"}],
"transactionreference": [{"value":"1-2-3"}]
},
"updates":{"settlebaseamount":"960"}
}]}'
{"alias":"webservices@example.com","version":"1.00","request":[{"requesttypedescriptions":["TRANSACTIONUPDATE"],"filter":{"sitereference":[{"value":"test_site12345"}],"transactionreference":[{"value":"1-2-3"}]},"updates":{"settlebaseamount":"960"}}]}
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="TRANSACTIONUPDATE">
<filter>
<transactionreference>1-2-3</transactionreference>
<sitereference>test_site12345</sitereference>
</filter>
<updates>
<settlement>
<settlebaseamount>960</settlebaseamount>
</settlement>
</updates>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.