Voor klanten die een betaling hebben voltooid met DCC, is het mogelijk om terugbetalingen te verwerken door handmatig een REFUND verzoek in te dienen met behulp van onze Webservices API of Portal.
Alvorens verder te gaan, let op het volgende:
- De Munt van de klant is de Munt die bij zijn kaart hoort.
- De Munt van de handelaar is de lokale Munt die aan uw rekening is gekoppeld.
Als de klant ervoor kiest om de betaling te verwerken in de Munt:
- Verwerk een standaard REFUND verzoek via onze Webservices API. Klik hier voor de documentatie.
- Verwerk een terugbetaling via Portal. Klik hier voor meer informatie.
Als de klant ervoor kiest om de betaling te verwerken in de Munt, kies dan een van de vier onderstaande opties:
DCC Terugbetalingen die via onze Webservices API worden verwerkt, hebben een vergelijkbare structuur als standaard REFUND verzoeken, maar zijn onderworpen aan aanvullende vereisten die hieronder worden beschreven.
Het is uw verantwoordelijkheid om ervoor te zorgen dat alle DCC veldwaarden die u opneemt in DCC REFUND verzoeken correct zijn en zijn overeengekomen met uw leverancier van omrekeningskoersen.
Uw leverancier van omrekeningskoersen zal het vereiste proces voor het afhandelen van terugbetalingen op uw account specificeren. Wij raden u aan de beschikbare opties te bekijken en contact op te nemen met ons Support Team voor meer informatie.
Verzoek
Het verzoek heeft dezelfde structuur als een standaard REFUND verzoek, behalve dat uw systeem ook de klant Munt velden OF de merchant Munt velden opnieuw moet indienen, zoals hieronder getoond:
Ofwel dient u de volgende twee klant Munt velden in het verzoek in:
currencyiso3a | De klant Munt. |
baseamount | Het bedrag op Munt van de klant. |
Of, als u liever de merchant Munt velden in het verzoek indient:
dcccurrencyiso3a | De koopman Munt. |
dccbaseamount | Het bedrag op Munt van de handelaar. |
Zoals bij standaard REFUND verzoeken, worden de ingediende parenttransactionreference veld moet verwijzen naar het bovengeschikte AUTH verzoek dat wordt terugbetaald (niet het CURRENCYRATE verzoek).
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
refund= {
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1641"
}
strequest = securetrading.Request()
strequest.update(refund)
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',
'parenttransactionreference' => '1-2-345678',
'currencyiso3a' => 'USD',
'baseamount' => '1641'
);
$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": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1641"
}]}'
{"alias":"webservices@example.com","version":"1.00","request":[{"requesttypedescriptions":["REFUND"],"sitereference":"test_site12345","parenttransactionreference":"1-2-345678","currencyiso3a":"USD","baseamount":"1641"}]}
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="USD">1641</amount>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345678</parenttransactionreference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
Dien een van deze bedragen in |
baseamount XPath: /billing/amount |
Numeriek (13) |
Het terug te betalen bedrag in de valuta van de klant (dit is inclusief de vergoeding die is toegevoegd als onderdeel van de berekening van het margepercentage). Dit moet in basiseenheden zijn zonder komma's of decimalen, dus €10 zou 1000 zijn. Opmerking: Bij het indienen van de baseamount, moet u ook het bijbehorende currencyiso3a veld indienen. |
dccbaseamount XPath: /billing/dcc/amount |
Numeriek (13) |
Het terug te betalen bedrag in de valuta van de handelaar. Dit moet in basiseenheden zijn zonder komma's of decimalen, dus €10 zou 1000 zijn. Opmerking: Bij het indienen van de dccbaseamount, moet u ook het bijbehorende dcccurrencyiso3a veld indienen. |
|
Dien een van deze valuta in |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt van de klant in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. Vereist indien de baseamount is ingediend. |
dcccurrencyiso3a XPath: /billing/dcc/amount/@currencycode |
Alpha (3) |
De handelaar Munt in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. Vereist indien de dccbaseamount is ingediend. |
|
dccconversionrate XPath: /billing/dcc/conversionrate |
Numeriek (255) | De conversiekoers die oorspronkelijk werd gebruikt om het bedrag op Munt van de klant te berekenen (teruggestuurd in het oorspronkelijke CURRENCYRATE antwoord). | |
dccconversionratesource XPath: /billing/dcc/conversionratesource |
Alfanumeriek (255) | De bron van de oorspronkelijke door de DCC provider geretourneerde omrekeningskoers (geretourneerd in het oorspronkelijke CURRENCYRATE antwoord). | |
dccmarginratepercentage XPath: /billing/dcc/marginratepercentage |
Numeriek (11) | Het percentage (4 decimalen) dat wordt gebruikt als onderdeel van het CURRENCYRATE verzoek om de Munt omzettingsvergoeding te berekenen, die na berekening automatisch wordt toegevoegd aan het bedrag in de Munt van de klant. | |
dccprovider XPath: /billing/dcc/provider |
Alfanumeriek (255) | De naam van de derde partij DCC die de in de betaling gebruikte omrekeningskoers heeft verstrekt (teruggestuurd in het oorspronkelijke antwoord CURRENCYRATE). | |
dccproviderdata XPath: /billing/dcc/dccproviderdata |
Alfanumeriek (255) | Een unieke string die informatie bevat over de berekende omrekeningskoers, rechtstreeks teruggestuurd van de deelnemende aanbieders van omrekeningskoersen (teruggestuurd in het oorspronkelijke CURRENCYRATE antwoord). | |
dcctype XPath: /billing/dcc/dcctype |
Alpha (3) | Indien ingediend, moet dit "DCC" zijn. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dit veld moet de Transactiereferentie bevatten van het AUTH verzoek dat u wilt terugbetalen. | |
requesttypedescriptions XPath: /@type |
Alpha (20) | U moet "REFUND" indienen. | |
sitereference XPath: /operation/sitereference |
Alfanumeriek & underscore (50) |
Identificeert uw site op het Trust Payments systeem. Als u uw sitereferentie niet kent, neem dan contact op met ons Support Team. |
Gedeeltelijke terugbetaling
Door een baseamount OF dccbaseamount met een lagere waarde dan oorspronkelijk toegestaan, kan uw systeem gedeeltelijke terugbetalingen verwerken. Wij zullen automatisch het bedrag in de andere Munt herberekenen en dit zal in het antwoord terugkomen.
Antwoord
Het teruggestuurde antwoord heeft een soortgelijke structuur als een standaard REFUND antwoord, met toevoeging van DCC-specifieke velden, zoals hieronder beschreven.
De teruggezonden DCC-specifieke velden zullen dezelfde waarden hebben als in de initiële CURRENCYRATE en AUTH verzoeken, waaruit blijkt dat dezelfde conversiegegevens zijn toegepast.
De dccratio waarde wordt berekend aan de hand van het restitutiebedrag in de valuta van de klant en de handelaar. Omdat deze waarde wordt berekend na de omzetting heeft plaatsgevonden, en het omgerekende bedrag is afgerond, de dccratio die in het antwoord wordt teruggestuurd, kan enigszins afwijken van die welke bij de oorspronkelijke betaling is gebruikt.
Specificatie veld
Veld | Formaat | Beschrijving | |
baseamount XPath: /billing/amount |
Numeriek (13) | Het terugbetaalde bedrag in de valuta van de klant (dit is inclusief de vergoeding die is toegevoegd als onderdeel van de berekening van het margepercentage). Dit is in basiseenheden zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
dccbaseamount XPath: /billing/dcc/amount |
Numeriek (13) | Het terugbetaalde bedrag in de valuta van de handelaar. Dit is in basiseenheden zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt van de klant in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. |
|
dcccurrencyiso3a XPath: /billing/dcc/amount/@currencycode |
Alpha (3) |
De handelaar Munt in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. |
|
dccconversionrate XPath: /billing/dcc/conversionrate |
Numeriek (255) | De omrekeningskoers die oorspronkelijk werd gebruikt om het bedrag op Munt van de klant te berekenen. | |
dccconversionratesource XPath: /billing/dcc/conversionratesource |
Alfanumeriek (255) | De bron van de oorspronkelijke omrekeningskoers die door de DCC provider is teruggestuurd. | |
dccenabled XPath: /billing/dcc/@enabled |
Numeriek (1) | De teruggezonden waarde is "1", wat betekent dat de rekening die voor de verwerking van deze betaling wordt gebruikt, is ingeschakeld voor DCC. | |
dccmarginratepercentage XPath: /billing/dcc/marginratepercentage |
Numeriek (11) | Het percentage (4 decimalen) dat wordt gebruikt als onderdeel van het CURRENCYRATE verzoek om de Munt omzettingsvergoeding te berekenen, die na berekening automatisch wordt toegevoegd aan het bedrag in de Munt van de klant. | |
dccoffered XPath: /billing/dcc/offered |
Numeriek (1) |
Deze waarde geeft aan of de REFUND werd verwerkt in de Munt van de klant of in de Munt van de handelaar:
1 - De klant werd terugbetaald in de Munt. 3 - De klant werd terugbetaald in de webwinkel Munt. |
|
dccproviderdata XPath: /billing/dcc/dccproviderdata |
Alfanumeriek (255) | Een unieke string die informatie bevat over de berekende omrekeningskoers, rechtstreeks afkomstig van de deelnemende aanbieders van omrekeningskoersen. | |
dccratio XPath: /billing/dcc/ratio |
Numeriek (255) | De verhouding tussen beide in het verzoek verwerkte bedragen in hoofdeenheden. | |
dcctype XPath: /billing/dcc/dcctype |
Alpha (3) | Dit wordt teruggestuurd als "DCC". | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De Transactiereferentie van het AUTH verzoek terugbetaald. | |
requesttypedescription XPath: /@type |
Alpha (20) | Dit wordt teruggestuurd als "REFUND". |
Procesoverzicht
-
Voer een nieuw CURRENCYRATE verzoek uit.
Let op: Bij een gedeeltelijke terugbetaling moet u een lagere dccbaseamount in het verzoek. - Voer een REFUND verzoek uit en zorg ervoor dat alle DCC-specifieke velden die in het nieuwe CURRENCYRATE antwoord worden geretourneerd, worden ingediend (zie onderstaande lijst).
Zoals bij standaard REFUND verzoeken, worden de ingediende parenttransactionreference veld moet verwijzen naar het bovengeschikte AUTH verzoek dat wordt terugbetaald (niet het CURRENCYRATE verzoek).
Verzoek
Hieronder volgt een voorbeeld van een verzoek om een REFUND te verwerken met een nieuwe omrekeningskoers. Dit veronderstelt dat u reeds een nieuw CURRENCYRATE verzoek hebt uitgevoerd en de nieuwe gegevens opneemt in het REFUND verzoek (Zie de veldspecificatie hieronder voor meer informatie over deze velden).
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
refund= {
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1260",
"dcctype": "DCC",
"dccconversionrate": "1.2",
"dccconversionratesource": "Rate Source",
"dccmarginratepercentage": "2.5000",
"dcccurrencyiso3a": "GBP",
"dccbaseamount": "1050",
"dccprovider": "Test Provider",
"dccproviderdata": "01020304120021250373330603INR0803356200513800210875190000300124306MBB01"
}
strequest = securetrading.Request()
strequest.update(refund)
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',
'parenttransactionreference' => '1-2-345678',
'currencyiso3a' => 'USD',
'baseamount' => '1260',
'dcctype' => 'DCC',
'dccconversionrate' => '1.2',
'dccmarginratepercentage' => '2.5000',
'dcccurrencyiso3a' => 'GBP',
'dccbaseamount' => '1050'
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'test_site12345',
'parenttransactionreference' => '1-2-345678',
'currencyiso3a' => 'USD',
'baseamount' => '1260',
'dcctype' => 'DCC',
'dccconversionrate' => '1.2',
'dccconversionratesource' => 'Rate Source',
'dccmarginratepercentage' => '2.5000',
'dcccurrencyiso3a' => 'GBP',
'dccbaseamount' => '1050',
'dccprovider' => 'Test Provider',
'dccproviderdata' => '01020304120021250373330603INR0803356200513800210875190000300124306MBB01'
);
$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": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1260",
"dcctype": "DCC",
"dccconversionrate": "1.2",
"dccconversionratesource": "Rate Source",
"dccmarginratepercentage": "2.5000",
"dcccurrencyiso3a": "GBP",
"dccbaseamount": "1050",
"dccprovider": "Test Provider",
"dccproviderdata": "01020304120021250373330603INR0803356200513800210875190000300124306MBB01"
}]}'
{"alias":"webservices@example.com","version":"1.00","request":[{"requesttypedescriptions":["REFUND"],"sitereference":"test_site12345","parenttransactionreference":"1-2-345678","currencyiso3a":"USD","baseamount":"1260","dcctype":"DCC","dccconversionrate":"1.2","dccconversionratesource":"Rate Source","dccmarginratepercentage":"2.5000","dcccurrencyiso3a":"GBP","dccbaseamount":"1050","dccprovider":"Test Provider","dccproviderdata":"01020304120021250373330603INR0803356200513800210875190000300124306MBB01"}]}
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="USD">1260</amount>
<dcc type="DCC">
<amount currencycode="GBP">1050</amount>
<conversionrate>1.2</conversionrate>
<conversionratesource>Rate Source</conversionratesource>
<provider>Test Provider</provider>
<dccproviderdata>01020304120021250373330603INR0803356200513800210875190000300124306MBB015</dccproviderdata>
<marginratepercentage>2.5000</marginratepercentage>
</dcc>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345678</parenttransactionreference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
baseamount XPath: /billing/amount |
Numeriek (13) | Het terug te betalen bedrag in de valuta van de klant (dit is inclusief de vergoeding die is toegevoegd als onderdeel van de berekening van het margepercentage). Dit moet in basiseenheden zijn zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
dccbaseamount XPath: /billing/dcc/amount |
Numeriek (13) | Het terug te betalen bedrag in de valuta van de handelaar. Dit moet in basiseenheden zijn zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt van de klant in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. |
|
dcccurrencyiso3a XPath: /billing/dcc/amount/@currencycode |
Alpha (3) |
De handelaar Munt in iso3a formaat. Klik hier voor een volledige lijst van beschikbare munteenheden. |
|
dccconversionrate XPath: /billing/dcc/conversionrate |
Numeriek (255) | De omrekeningskoers die wordt gebruikt om de nieuwe bedragen te berekenen (teruggestuurd in het nieuwe antwoord CURRENCYRATE). | |
dccconversionratesource XPath: /billing/dcc/conversionratesource |
Alfanumeriek (255) | De bron van de nieuwe omrekeningskoers die door de DCC provider is teruggestuurd (teruggestuurd in het nieuwe CURRENCYRATE antwoord). | |
dccmarginratepercentage XPath: /billing/dcc/marginratepercentage |
Numeriek (11) | Het percentage dat wordt gebruikt als onderdeel van de nieuwe CURRENCYRATE aanvraag, om de Munt omzettingskosten te berekenen (4 decimalen), automatisch toegevoegd aan het bedrag in de Munt van de klant door de DCC provider. | |
dccprovider XPath: /billing/dcc/provider |
Alfanumeriek (255) | De naam van de derde partij DCC provider die de in de betaling gebruikte omrekeningskoers heeft verstrekt (teruggestuurd in het nieuwe CURRENCYRATE antwoord). | |
dccproviderdata XPath: /billing/dcc/dccproviderdata |
Alfanumeriek (255) | Een unieke string die informatie bevat over de berekende omrekeningskoers, rechtstreeks teruggestuurd van de deelnemende aanbieders van omrekeningskoersen (teruggestuurd in het nieuwe antwoord CURRENCYRATE). | |
dcctype XPath: /billing/dcc/dcctype |
Alpha (3) | U moet "DCC" indienen. | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dit veld moet de Transactiereferentie bevatten van het AUTH verzoek dat u wilt terugbetalen. | |
requesttypedescriptions XPath: /@type |
Alpha (20) | U moet "REFUND" indienen. | |
sitereference XPath: /operation/sitereference |
Alfanumeriek & underscore (50) |
Identificeert uw site op het Trust Payments systeem. Als u uw sitereferentie niet kent, neem dan contact op met ons Support Team. |
Antwoord
Het teruggestuurde antwoord heeft een soortgelijke structuur als een standaard REFUND antwoord, met toevoeging van DCC-specifieke velden, zoals hieronder beschreven.
De teruggezonden DCC-specifieke velden zullen dezelfde waarden hebben als in het nieuwe CURRENCYRATE verzoek, waaruit blijkt dat de nieuwe conversiegegevens zijn toegepast.
Specificatie veld
Veld | Formaat | Beschrijving | |
baseamount XPath: /billing/amount |
Numeriek (13) | Het terugbetaalde bedrag in de valuta van de klant (dit is inclusief de vergoeding die is toegevoegd als onderdeel van de berekening van het margepercentage). Dit is in basiseenheden zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
dccbaseamount XPath: /billing/dcc/amount |
Numeriek (13) | Het terugbetaalde bedrag in de valuta van de handelaar. Dit is in basiseenheden zonder komma's of decimalen, dus €10 zou 1000 zijn. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt van de klant in iso3a formaat. |
|
dcccurrencyiso3a XPath: /billing/dcc/amount/@currencycode |
Alpha (3) |
De handelaar Munt in iso3a formaat. |
|
dccconversionrate XPath: /billing/dcc/conversionrate |
Numeriek (255) | De omrekeningskoers die wordt gebruikt om de nieuwe bedragen te berekenen (teruggestuurd in het nieuwe antwoord CURRENCYRATE). | |
dccconversionratesource XPath: /billing/dcc/conversionratesource |
Alfanumeriek (255) | De bron van de nieuwe omrekeningskoers die door de DCC provider is teruggestuurd (teruggestuurd in het nieuwe CURRENCYRATE antwoord). | |
dccenabled XPath: /billing/dcc/@enabled |
Numeriek (1) | De teruggezonden waarde is "1", wat betekent dat de rekening die voor de verwerking van deze betaling wordt gebruikt, is ingeschakeld voor DCC. | |
dccmarginratepercentage XPath: /billing/dcc/marginratepercentage |
Numeriek (11) | Het percentage dat wordt gebruikt als onderdeel van de nieuwe CURRENCYRATE aanvraag, om de Munt omzettingskosten te berekenen (4 decimalen), automatisch toegevoegd aan het bedrag in de Munt van de klant door de DCC provider. | |
dccoffered XPath: /billing/dcc/offered |
Numeriek (1) |
Deze waarde geeft aan of de REFUND werd verwerkt in de Munt van de klant of in de Munt van de handelaar:
1 - De klant werd terugbetaald in de Munt. 3 - De klant werd terugbetaald in de webwinkel Munt. |
|
dccprovider XPath: /billing/dcc/provider |
Alfanumeriek (255) | De naam van de derde partij DCC die de bij de betaling gebruikte omrekeningskoers heeft verstrekt. | |
dccproviderdata XPath: /billing/dcc/dccproviderdata |
Alfanumeriek (255) | Een unieke string die informatie bevat over de berekende omrekeningskoers, rechtstreeks afkomstig van de deelnemende aanbieders van omrekeningskoersen. | |
dccratio XPath: /billing/dcc/ratio |
Numeriek (255) | De verhouding tussen beide in het verzoek verwerkte bedragen in hoofdeenheden. | |
dcctype XPath: /billing/dcc/dcctype |
Alpha (3) | Dit wordt teruggestuurd als "DCC". | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De Transactiereferentie van het AUTH verzoek terugbetaald. | |
requesttypedescription XPath: /@type |
Alpha (20) | Dit wordt teruggestuurd als "REFUND". |
Procesoverzicht
Uw leverancier van omrekeningskoersen kan eisen dat u een nieuwe omrekeningskoers gebruikt bij het uitvoeren van een DCC-terugbetaling nadat een vooraf gespecificeerd aantal dagen is verstreken sinds de bovengeschikte AUTH verzoek werd verwerkt (we noemen dit x dagen). Om dit aan te pakken kan ons Support Team uw account als volgt configureren:
- Dien DCC REFUND aanvraag in.
- Als er minder dan x dagen zijn verstreken sinds de AUTH, verwerken wij een terugbetaling op basis van de oorspronkelijke omrekeningskoers.
- Als er meer dan x dagen zijn verstreken sinds de AUTH, voeren we automatisch een nieuw CURRENCYRATE verzoek uit en gebruiken we de output om een restitutie te verwerken met behulp van de meest recente omrekeningskoers.
Om dit voor uw account te configureren of voor meer informatie kunt u contact opnemen met ons Support Team.
Verzoek
Het verzoek heeft dezelfde structuur als een standaard REFUND verzoek, behalve dat uw systeem ook de klant Munt velden OF de merchant Munt velden opnieuw moet indienen, zoals hieronder getoond:
Ofwel dient u de volgende twee klant Munt velden in het verzoek in:
currencyiso3a | De klant Munt. |
baseamount | Het bedrag op Munt van de klant. |
Of, als u liever de merchant Munt velden in het verzoek indient:
dcccurrencyiso3a | De koopman Munt. |
dccbaseamount | Het bedrag op Munt van de handelaar. |
Zoals bij standaard REFUND verzoeken, worden de ingediende parenttransactionreference veld moet verwijzen naar het bovengeschikte AUTH verzoek dat wordt terugbetaald (niet het CURRENCYRATE verzoek).
Deze implementatie ondersteunt zowel gedeeltelijke als volledige terugbetalingen. Gewoon een lagere baseamount OF dccbaseamount en we berekenen de waarde in de andere Munt.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
refund= {
"requesttypedescriptions": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1641"
}
strequest = securetrading.Request()
strequest.update(refund)
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',
'parenttransactionreference' => '1-2-345678',
'currencyiso3a' => 'USD',
'baseamount' => '1641'
);
$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": ["REFUND"],
"sitereference": "test_site12345",
"parenttransactionreference": "1-2-345678",
"currencyiso3a": "USD",
"baseamount": "1641"
}]}'
{"alias":"webservices@example.com","version":"1.00","request":[{"requesttypedescriptions":["REFUND"],"sitereference":"test_site12345","parenttransactionreference":"1-2-345678","currencyiso3a":"USD","baseamount":"1641"}]}
<?xml version='1.0' encoding='utf-8'?>
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="USD">1641</amount>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<parenttransactionreference>1-2-345678</parenttransactionreference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Het is ook mogelijk om DCC betalingen terug te betalen met behulp van Portal. Als de betaling is verwerkt met de Munt van de klant (binnen Portal weergegeven als dccoffered = 1), voeren we automatisch een nieuw CURRENCYRATE verzoek uit om de klant terug te betalen met behulp van een actuele conversiekoers. Portal ondersteunt ook de mogelijkheid om gedeeltelijke terugbetalingen te verwerken.
Klik hier voor documentatie over het uitvoeren van terugbetalingen met Portal.
De mogelijkheid om transacties terug te betalen via Portal is beperkt tot gebruikers met bepaalde gebruikersrollen(Klik hier voor informatie over de verschillende gebruikersrollen).