Skip to main content

Add promotion translations

Last updated: 29-Sep-2021
Rate this article:


Use the addPromotionTranslations method via SOAP API 4.0 to add localized texts to existing promotions.


Parameter Type/Description


Required (string)


Output of the Login method.


Required (string)


The code corresponding to the promotion that you want to add translations to.


Required (array of PromotionTranslations objects)

PromotionTranslations  Object



Required (string)



ISO country code corresponding to the country you want to set the translation for.



Required (string)



Localized promotion name applicable to the selected country.


Parameters Type/Description




class Client
    protected static $merchantCode;
    protected static $loginDate;
    protected static $hash;
    protected static $baseUrl;
    protected static $callCount = 0;
    protected static $sessionId = '';

    protected static $client;

    public static function setCredentials($code, $key)
        static::$merchantCode = $code;
        static::$loginDate = gmdate('Y-m-d H:i:s');
        static::$hash = hash_hmac('md5', strlen($code) . $code . strlen(static::$loginDate) . static::$loginDate, $key);
        static::$sessionId = static::login();

    public static function setBaseUrl($url)
        static::$baseUrl = $url;

    public static function login()
        $client = static::getClient();
        return $client->login(static::$merchantCode, static::$loginDate, static::$hash);

    public static function __callStatic($name, $arguments = array())
        $client = static::getClient();

        array_unshift($arguments, static::$sessionId);
        $response = call_user_func_array(array($client, $name), $arguments);

        return $response;

    protected static function getClient()
        $opts = array(
            'http'=> ['user_agent' => 'PHPSoapClient'],
            'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false,

        if (null === static::$client) {
            static::$client = new \SoapClient(static::$baseUrl . '?wsdl', [
                'location' => static::$baseUrl,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'stream_context' => stream_context_create($opts),

        return static::$client;

Client::setCredentials('YOUR_MERCHANT_CODE', 'YOUR_SECRET_KEY');

$promotionCode = 'YOUR_PROMOTION_CODE'; // code of the promotion that you want to update

// Defining a translation for German shoppers
$promotionTranslation1 = new stdClass;
$promotionTranslation1->Language = 'de'; 
$promotionTranslation1->Name = 'YOUR_GERMAN_PROMOTION_NAME';

// Defining a translation for Bulgarian shoppers
$promotionTranslation2 = new stdClass;
$promotionTranslation2->Language = 'bg'; 
$promotionTranslation2->Name = 'YOUR_BULGARIAN_PROMOTION_NAME';

$translations = [$promotionTranslation1, $promotionTranslation2];

$response = Client::addPromotionTranslations($promotionCode,$translations); // Add translations to selected promotions


Rate this article:

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo