Skip to main content

Delete upsell campaign

Delete upsell campaign

Last updated: 19-Jan-2021
Rate this article:


Use the deleteUpSellCampaign method via JSON-RPC API 6.0 to permanently delete an upsell campaign in any status (active, disabled, expired).

Request parameters

Parameters Type Required/Optional Description
upSellCampaignCode String Required The identifying code of the upsell campaign.

    Request sample

    class Configuration
        public const MERCHANT_CODE = '';
        public const MERCHANT_KEY = '';
        public const URL = '';
        public const ACTION = 'deleteUpsellCampaign';
        public const ADDITIONAL_OPTIONS = null;
        public const PAYLOAD = "72937a15-1ffd-43b9-90b2-210d03dcd754";
    class Client
        private const LOGIN_METHOD = 'login';
        private $calls = 1;
        private $sessionId;
        private function generateAuth(): array
            $merchantCode = Configuration::MERCHANT_CODE;
            $key = Configuration::MERCHANT_KEY;
            $date = gmdate('Y-m-d H:i:s');
            $string = strlen($merchantCode) . $merchantCode . strlen($date) . $date;
            $hash = hash_hmac('md5', $string, $key);
            return compact('merchantCode', 'date', 'hash');
        public function login(string $url)
            $payload = $this->generateAuth();
            $response = $this->call($url, array_values($payload), self::LOGIN_METHOD);
            $this->sessionId = $response['result'];
        public function call(
            string $url = Configuration::URL,
            $payload = Configuration::PAYLOAD,
            string $action = Configuration::ACTION
        ): ?array {
            if (empty($this->sessionId) && $action !== self::LOGIN_METHOD) {
            if (!empty($this->sessionId)) {
                $payload = [$this->sessionId, $payload, Configuration::ADDITIONAL_OPTIONS];
            $payload = array_filter($payload);
            $request = json_encode([
                'jsonrpc' => '2.0',
                'method' => $action,
                'params' => $payload,
                'id' => $this->calls++,
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($curl, CURLOPT_SSLVERSION, 0);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', 'Cookie: XDEBUG_SESSION=PHPSTORM'));
            curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
            $response = curl_exec($curl);
            if(empty($response)) {
                die('Server unavailable');
            echo $response . '</br>';
            return json_decode($response, true);;
    $client = new Client();
    $result = $client->call();


    • 204 - 'No content' if SUCCESS
    • 4xx if FAILED with distinct error messages

    Error handling

    Error code Message
    UPSELL_CAMPAIGN_NOT_FOUND Upsell campaign with code test was not found.
    UPSELL_CAMPAIGN_CODE_TOO_LONG Code exceeds allowed max length (255)


    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