For the complete documentation index, see llms.txt. This page is also available as Markdown.

Total refund

Use the issueRefund method to issue a total refund for an order processed by 2Checkout.

Requirements

  • The payment for the refundable order needs to be collected.

  • You cannot issue a refund for an amount higher than the total order amount.

Request sample

<?php

$host = 'https://api.avangate.com';
$merchantCode = "MERCHANT_CODE"; // your account's merchant code available in the 'System settings' area of the cPanel: https://secure.2checkout.com/cpanel/account_settings.php
$key = "SECRET_KEY"; // your account's secret key available in the 'System settings' area of the cPanel: https://secure.2checkout.com/cpanel/account_settings.php

$now = gmdate('Y-m-d H:i:s'); //GMT date format)
$algo = "sha256";
$string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
$hash = hash_hmac($algo, $string, $key);

try {
    $client = new SoapClient($host . "/soap/6.0/?wsdl", [\
        'location'       => $host . "/soap/6.0/",\
        "stream_context" => stream_context_create([\
            'ssl' => [\
                'verify_peer'      => false,\
                'verify_peer_name' => false\
            ]\
        ])\
    ]);
    $sessionID = $client->login($merchantCode, $now, $hash, $algo);
    echo("Token: {$sessionID}" . PHP_EOL);

    $orderReference = "73152871";
    $items = [];
    $amount = '241.49';
    $comment = "This is a comment";
    $reason = "Fraud";

    $refundedOrder = $client->issueRefund($sessionID, $orderReference, $amount, $items, $comment, $reason);
    var_dump($refundOrder);
} catch (SoapFault $e) {
    echo "Authentication: " . $e->getMessage() . PHP_EOL;
    exit;
}

Response parameters

Response
Type/Description

Boolean

TRUE if the refund was processed successfully FALSE otherwise

Last updated

Was this helpful?