Skip to main content

Retrieve a specific proposal version

Retrieve a specific proposal version

Last updated: 04-Feb-2021
Rate this article:


Use the getProposalVersion method via SOAP API 6.0 to retrieve a specific proposal version.

Request Parameters

Parameters Type Required/Optional Description
proposalId String Required The proposal identifier.
proposalVersion Integer Required The proposal version.

Request Sample


class Configuration
    public const MERCHANT_CODE = '';
    public const MERCHANT_KEY = '';
    public const URL = '';
    public const ACTION = 'getProposalVersion';
    public const ADDITIONAL_OPTIONS = null;
    public const PROPOSAL_ID = "7ee02473-b60a-415b-90ae-87c6c443f684";
    public const PROPOSAL_VERSION = 3;
    //array or JSON
    public const PAYLOAD = <<<JSON

class Client
    public function call(
        string $url = Configuration::URL,
        $payload = Configuration::PAYLOAD,
        string $action = Configuration::ACTION,
        string $proposalId = Configuration::PROPOSAL_ID,
        int $proposalVersion = Configuration::PROPOSAL_VERSION
    ): ?object {
        if (is_array($payload)) {
            $payload = json_encode($payload);
        if (!empty($payload)) {
            // SoapClient works with objects(StdClass)
            $payload = json_decode($payload);

        $soapClient = $this->getClient($url);
        $sessionId = $this->getSession($soapClient);
        $args = array_filter([$sessionId, $proposalId, $proposalVersion]);

        return $soapClient->$action(...$args);

    public function getClient(string $url): SoapClient
        return new SoapClient(
                'location' => $url,
                'cache_wsdl' => WSDL_CACHE_NONE,

    public function getSession(SoapClient $client)
        $date = gmdate('Y-m-d H:i:s');
        $merchantCode = Configuration::MERCHANT_CODE;
        $key = Configuration::MERCHANT_KEY;
        $string = strlen($merchantCode).$merchantCode.strlen($date).$date;
        $hash = hash_hmac('md5', $string, $key);
        $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');

        return $client->login($merchantCode, $date, $hash);

try {
    $client = new Client();
} catch (Exception $ex) {


The getProposalVersion call via SOAP API 6.0 returns the Proposal object.

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