Net als bij andere standaardbetalingen is het mogelijk om updates uit te voeren op DCC betalingen vóór afwikkeling, door een TRANSACTIONUPDATE verzoek in te dienen via onze Webservices API of door Portal te gebruiken.
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
Je kunt een TRANSACTIONUPDATE verzoek indienen via onze Webservices API of Portal gebruiken om het afwikkelingsbedrag van een geautoriseerde DCC betaling bij te werken. Dit kan worden gebruikt om een transactie af te wikkelen voor een lagere waarde dan in eerste instantie was geautoriseerd. Het resterende bedrag wordt door de kaartuitgever vrijgegeven zodra de autorisatie code is verlopen (meestal na 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.