Skip to main content

Use Stored Credit

Overview

The Stored Credit payment method allows merchants to process payments without requiring payment details from the shopper. Instead, the shopper's credit balance is pre-stored and managed within your system (NOT stored by 2Checkout). When using this payment method via API, it is the merchant's responsibility to validate that the shopper has sufficient credits to complete the transaction. This method allows you to accept payments using pre-purchased credits systems such as proprietary gift vouchers.

Availability

This payment method is exclusive to the API and is not available on any of 2Checkout's hosted shopping carts.

Supported currencies

Stored Credit is at the moment available only in USD. Contact 2Checkout to ask about availability in other currencies.

Workflow

  1. Distribute the credits to your customers using your desired process, outside of the 2Checkout platform.
  2. Validate that the customer who intends to initiate the order has enough credits available.
  3. Create the order object. Use STORED_CREDIT as the type in PaymentDetails object.

     
    It is not recommended that you use the PaymentMethod object for Stored Credit, the only parameter supported is RecurringEnabled = false which is also the default value, true is not supported and will return an error.
  4. Place the order.

Request parameters

Parameters Type/Description
sessionID

Required (string)

Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect. The sessionID expires in 10 minutes.

Order

Required (object)

Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details. See code sample for more details.

Request example

<?php
declare(strict_types=1);
class Configuration
{
    public const MERCHANT_CODE = 'MERCHANT';
    public const MERCHANT_KEY = 'SECRET_KEY';
    public const URL = 'https://api.2checkout.com/soap/6.0';
    public const ACTION = 'placeOrder';
    public const PAYLOAD =  <<<JSON
{
    "Currency": "USD",
    "Language": "EN",
    "Country": "us",
    "CustomerIP": "91.220.121.21",
    "Source": "sourceAPI.net",
    "LocalTime": "2022-01-13 09:41:59",
    "CustomerReference": 421820775,
    "Items": [
        {
            "Code": "TA-TuneUp-M-RENEW"
        }
    ],
    "BillingDetails": {
        "Address1": "Test Address",
        "City": "LA",
        "State": "California",
        "CountryCode": "US",
        "Email": "testcustomer@2Checkout.com",
        "FirstName": "Customer",
        "LastName": "2Checkout",
        "Zip": "12345"
      },
    "PaymentDetails": {
        "Type": "STORED_CREDIT",
        "Currency": "USD",
        "CustomerIP": "91.220.121.21"
    }
}
JSON;
}
class Client
{
    public function call(
        string $url = Configuration::URL,
        $payload = Configuration::PAYLOAD,
        string $action = Configuration::ACTION
    ): ?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, $payload]);
        return $soapClient->$action(...$args);
    }
    public function getClient(string $url): SoapClient
    {
        return new SoapClient(
            $url.'?wsdl',
            [
                '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;
        $algo = 'sha256';
        $hash = hash_hmac($algo, $string, $key);
        $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');
        return $client->login($merchantCode, $date, $hash, $algo);
    }
}
try {
    $client = new Client();
    var_dump($client->call());
} catch (Exception $ex) {
    var_dump($ex);
}

Response parameters

Parameter Type/Description
Order information Object
Object containing order information.

Use Stored Credit

Overview

The Stored Credit payment method allows merchants to process payments without requiring payment details from the shopper. Instead, the shopper's credit balance is pre-stored and managed within your system (NOT stored by 2Checkout). When using this payment method via API, it is the merchant's responsibility to validate that the shopper has sufficient credits to complete the transaction. This method allows you to accept payments using pre-purchased credits systems such as proprietary gift vouchers.

Availability

This payment method is exclusive to the API and is not available on any of 2Checkout's hosted shopping carts.

Supported currencies

Stored Credit is at the moment available only in USD. Contact 2Checkout to ask about availability in other currencies.

Workflow

  1. Distribute the credits to your customers using your desired process, outside of the 2Checkout platform.
  2. Validate that the customer who intends to initiate the order has enough credits available.
  3. Create the order object. Use STORED_CREDIT as the type in PaymentDetails object.

     
    It is not recommended that you use the PaymentMethod object for Stored Credit, the only parameter supported is RecurringEnabled = false which is also the default value, true is not supported and will return an error.
  4. Place the order.

Request parameters

Parameters Type/Description
sessionID

Required (string)

Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect. The sessionID expires in 10 minutes.

Order

Required (object)

Object designed to collect all data necessary for an order, including billing, products/subscription plan and payment details. See code sample for more details.

Request example

<?php
declare(strict_types=1);
class Configuration
{
    public const MERCHANT_CODE = 'MERCHANT';
    public const MERCHANT_KEY = 'SECRET_KEY';
    public const URL = 'https://api.2checkout.com/rpc/6.0';
    public const ACTION = 'placeOrder';
    //array or JSON
    public const PAYLOAD = <<<JSON
{
    "Currency": "USD",
    "Language": "EN",
    "Country": "us",
    "CustomerIP": "91.220.121.21",
    "Source": "sourceAPI.net",
    "LocalTime": "2022-01-13 09:41:59",
    "CustomerReference": 421820775,
    "Items": [
        {
            "Code": "TA-TuneUp-M-RENEW"
        }
    ],
    "BillingDetails": {
        "Address1": "Test Address",
        "City": "LA",
        "State": "California",
        "CountryCode": "US",
        "Email": "testcustomer@2Checkout.com",
        "FirstName": "Customer",
        "LastName": "2Checkout",
        "Zip": "12345"
      },
    "PaymentDetails": {
        "Type": "STORED_CREDIT",
        "Currency": "USD",
        "CustomerIP": "91.220.121.21"
    }
}
JSON;
}
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;
        $algo = 'sha256';
        $hash = hash_hmac($algo, $string, $key);
        return compact('merchantCode', 'date', 'hash', 'algo');
    }
    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) {
            $this->login($url);
        }
        if (is_string($payload)) {
            $payload = json_decode($payload, true);
        }
        if (!empty($this->sessionId)) {
            $payload = [$this->sessionId, $payload];
        }
        $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,
            ['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();
var_dump($result);

Response parameters

Parameter Type/Description
Order information

Object

Object containing order information.

Compliance subscription / trial

Use the variables in the list below to customize the Compliance subscription email and Compliance trial email according to your needs. 

 
Check the Mandatory column to see the variables that are required in your customized version of the e-mail.

 

Variable name Email type Mandatory Test value Description
FIRST_NAME_BILLING

Compliance subscription email

Compliance trial email

No John Shopper's first name used on the billing information.
LAST_NAME_BILLING

Compliance subscription email

Compliance trial email

No Doe Shopper's last name used on the billing information.
LICENCES  
  LICENCES[index1].BILLING_CYCLE_DURATION Compliance subscription email Yes 1 Month The billing recurrence.
  LICENCES[index1].LICENCE_CODE

Compliance subscription email

Compliance trial email

No 7Q47P6Y84Q Subscription code.
  LICENCES[index1].NEXT_BILLING_DATE

Compliance subscription email

Compliance trial email

Yes Mar 14th 2020 The date for the next billing.
  LICENCES[index1].NEXT_BILLING_PRICE

Compliance subscription email

Compliance trial email

Yes 100.00 EUR The price for the next billing.
  LICENCES[index1].NEXT_BILLING_PRICE_TYPE

Compliance subscription email

Compliance trial email

No NET Specifies if the price is GROSS or NET.
  LICENCES[index1].PRODUCT_NAME

Compliance subscription email

Compliance trial email

No Product name The name of the product.
  LICENCES[index1].PRODUCT_QUANTITY

Compliance subscription email

Compliance trial email

No 1 The quantity of the product(s).
  LICENCES[index1].RENEWAL_TYPE Compliance subscription email No Automatic Specifies if subscription renews manually or automatically.
  LICENCES[index1].TRIAL_DURATION Compliance trial email Yes 1 Month The duration of the trial.
  LICENCES[index1].TRIAL_EXPIRATION Compliance trial email Yes Mar 14th 2021 The expiration date of the trial.
MERCHANT_COMMERCIAL_NAME

Compliance subscription email

Compliance trial email

No Some company Merchant's commercial name.
MERCHANT_SUPPORT_EMAIL

Compliance subscription email

Compliance trial email

No support@domain.com Merchant support email address.
MERCHANT_SUPPORT_PHONE

Compliance subscription email

Compliance trial email

No +01 234 56 78 90 Merchant support phone number.
MY_ACCOUNT_LOGIN_EMAIL

Compliance subscription email

Compliance trial email

No john.doe@domain.com Email address used by shopper to login/signup to myAccount.
MY_ACCOUNT_LOGIN_URL

Compliance subscription email

Compliance trial email

No https://www.2checkout.com/myaccount 2Checkout myAccount login/signup URL.
MY_ACCOUNT_LOGO

Compliance subscription email

Compliance trial email

No https://secure.2checkout.com/ URL to the MyAccount logo.
PAYMENT_PARTNER

Compliance subscription email

Compliance trial email

Yes 2Checkout The name of the Merchant of Record. Always set to "2checkout".
PLATFORM_WEBSITE

Compliance subscription email

Compliance trial email

No https://www.2checkout.com 2Checkout's website.
REFNO

Compliance subscription email

Compliance trial email

No 1234567890 Order reference number.
RENEWAL_PRODUCT_NAME

Compliance subscription email

Compliance trial email

No Product name The name of the renewal product.
RENEWAL_PRODUCT_QUANTITY

Compliance subscription email

Compliance trial email

No 1 The quantity that will be used at renewal.

Google Pay

Overview

Google Pay is a digital wallet and online payment method developed by Google. It's one of the most popular digital wallets, offering a fast and simple way to pay.

Availability

Supported countries: worldwide upon Google Pay local availability.

Supported currencies: EUR, USD, GBP, CHF, DKK, NOK, and SEK.

Supporting recurring payments: yes

Benefits

  • Merchants offer shoppers safe payments with their preferred localized payment methods.
  • Increased conversion and authorization rates, as Google Pay is used by over 150 million customers across 42 global markets.
  • Simplified payment acceptance across different sales channels for Verifone Merchants.

Activate Google Pay

Please contact your account representative and request the activation of Google Pay.

Shopper flow

  1. The shopper initiates an online purchase. 
  2. Once the products for purchase are selected, the 2Checkout checkout page will be displayed.
  3. The shopper selects Google Pay as a payment method and continues the checkout process.

Select Google Pay

4. On the confirmation page, the shopper clicks the Buy with GPay button.

Google Pay shopper flow

5. The shopper is redirected to the Google Pay payment flow. If the shopper is already logged into their Google Account, they are prompted with a pop-up where they can select their desired saved card, to be used for finalizing this purchase.

If the shopper is not yet logged into their Google Account at this step they will be asked to log in, and then they can select their desired card.

Google Pay saved cards

6. Additional authentication via 3DS might be required in the countries where SCA and 3DS are mandatory.

7. Once all steps are completed, the Finish page is displayed, as the order is confirmed.

Google Pay order confirmed

IPN read receipt response for 2Checkout

Overview

To validate the success of the notification process insert an inline response in the script output of your IPN listener. Once 2Checkout validates the response it considers the IPN successful. Otherwise, 2Checkout sends notifications per the failure recovery process until you provide a valid response.

Read receipt response from 2Checkout

The read receipt response is required in the IPN response body, unlike the previous hash string which is optional, with the EPAYMENT tag. We use this hash as a method of security.

To validate the success of the notification process, insert an inline response in the script output of your IPN listener. 2Checkout expects the following format:

<sig algo="sha256" date="DATE">HASH</sig>

   Note:  Possible values for algo: sha256, sha3-256.

Once 2Checkout validates that the above format is part of the response it considers the IPN successful. Otherwise, 2Checkout continues to send notifications per the failure recovery process until you provide a valid response.

DATE Datetime stamp. YmdHis. (20081117145935)
HASH

Calculate the HMAC_SHA signature using:

  • IPN_PID[0]
  • IPN_PNAME[0]
  • IPN_DATE
  • DATE
  • Your account’s secret key

HASH fields values are case insensitive.

The fields used in the HMAC_SHA signature are captured from the IPN payload just received, in the same order:

Field name Description
IPN_PID[0] First product ID from the IPN_PID[] array.
IPN_PNAME[0] First product name from the IPN_PNAME[] array.
IPN_DATE IPN date in the YmdHis format (ex: 20081117145935)
DATE Response issuing date (server time) in the YmdHis format (ex: 20081117145935)

For the example parameters included in this article, build the response using shorter data formats for date values. Use only the following values, in the same order, for the HMAC source string:

Field name Length Field value
IPN_PID[0] 1 1
IPN_PNAME[0] 16 Software program
IPN_DATE 14 20050303123434
DATE 14 20050303123434

Therefore, the HMAC source string is:

1116Software program14200503031234341420050303123434

while the HMAC SHA-2 string is: 

ea6f44c39b3d204b59500998fcb9221c92744d9721a94b45fc6d5cda99980176

and the HMAC SHA-3 string is:

85180497aaaa4844a278b52b1ce257d2820dbf5857470a5f678fef2266d0d4a8

Configure the response to output anywhere on the page defined as the IPN URL for:

  • SHA-2:
<sig algo="sha256" date="20050303123434">ea6f44c39b3d204b59500998fcb9221c92744d9721a94b45fc6d5cda99980176</sig>
  • SHA-3:
<sig algo="sha3-256" date="20050303123434">85180497aaaa4844a278b52b1ce257d2820dbf5857470a5f678fef2266d0d4a8</sig>

2Checkout checks the string’s validity and marks notifications as "successfully sent" in the 2Checkout system. Otherwise, 2Checkout resends the IPN notifications at specific time intervals described in the failure recovery process section, until successfully confirmed. Also, 2Checkout displays an error notification in the Dashboard area of your Merchant Control Panel.

Use ApplePay

Overview

Place an order using catalog products defined in your Control Panel, and collect the payment using ApplePay.

Currency support

Check with 2Checkout support for a list of currencies available for ApplePay.

Activation

For activation, you need to have Apple Pay enabled on your 2Checkout account. Contact the Merchant Support team in order to enable this. After 2Checkout sets up our domain, we will provide you with a domain verification file.

Host your domain verification file at the following path on our server: https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association.

Workflow

  1. Initialize an ApplePay session using our API.
  2. Collect the "ApplePayDataToken" provided by Apple Pay client side and pass it server side to make the placeOrder API call.
  3. Create the order object. Use APPLE_PAY as the type in the PaymentDetails object and pass the "ApplePayDataToken" through the "ApplePayToken" property in the PaymentMethod object. Place the order.

Parameters

Parameters Type/Description
sessionID Required (string)
  Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect.  The sessionID expires in 10 minutes.
Order Required (Object)
  Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details.

Response parameters

Parameters Type/Description
Order information Object
  Object containing order information.

Request

<?php

declare(strict_types=1);

class Configuration
{
    public const MERCHANT_CODE = 'MERCHANT_CODE';
    public const MERCHANT_KEY = 'SECRET_KEY';
    public const URL = 'http://api.avangate.local/rpc/6.0';
    public const ACTION = 'placeOrder';
    //array or JSON
    public const PAYLOAD =  <<<JSON
{
  "Currency": "usd",
  "Language": "en",
  "Country": "us",
  "Source": "API",
  "Affiliate": {
        "AffiliateCode": "ABCDE1234"
  },
  "Items": [
    {
      "Code": "K6DHJXGULK",
      "Quantity": 2
    }
],
  "BillingDetails": {
    "Address1": "Test Address",
    "City": "LA",
    "State": "California",
    "CountryCode": "US",
    "Email": "testcustomer@2Checkout.com",
    "FirstName": "Customer",
    "LastName": "2Checkout",
    "Zip": "12345"
  },
  "PaymentDetails":{
      "Type":"APPLE_PAY",
      "Currency":"USD",
      "CustomerIP":"10.10.10.10",
      "PaymentMethod":{
         "ApplePayToken":"ApplePayDataToken"
      }
   }
}
JSON;

}
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;
        $algo = 'sha256';
        $hash = hash_hmac($algo, $string, $key);
        return compact('merchantCode', 'date', 'hash', 'algo');
    }

    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) {
            $this->login($url);
        }
        if(is_string($payload)) {
            $payload = json_decode($payload, true);
        }
        if (!empty($this->sessionId)) {
            $payload = [$this->sessionId, $payload];
        }
        $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();
var_dump($result);

Use ApplePay

Overview

Place an order using catalog products defined in your Control Panel, and collect the payment using ApplePay.

Currency support

Check with 2Checkout support for a list of currencies available for ApplePay.

Activation

For activation, you need to have Apple Pay enabled on your 2Checkout account. Contact the Merchant Support team in order to enable this. After 2Checkout sets up our domain, we will provide you with a domain verification file.

Host your domain verification file at the following path on our server: https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association.

Workflow

  1. Initialize an ApplePay session using our API.
  2. Collect the "ApplePayDataToken" provided by Apple Pay client side and pass it server side to make the placeOrder API call.
  3. Create the order object. Use APPLE_PAY as the type in the PaymentDetails object and pass the "ApplePayDataToken" through the "ApplePayToken" property in the PaymentMethod object. Place the order.

Parameters

Parameters Type/Description
sessionID Required (string)
  Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect.  The sessionID expires in 10 minutes.
Order Required (Object)
  Object designed to collect all data necessary for an order, including billing, product/subscription plan and payment details.

Response parameters

Parameters Type/Description
Order information Object
  Object containing order information.

Request

<?php
declare(strict_types=1);
class Configuration
{
    public const MERCHANT_CODE = 'MERCHANT_CODE';
    public const MERCHANT_KEY = 'SECRET_KEY';
    public const URL = 'http://api.avangate.local/soap/6.0';
    public const ACTION = 'placeOrder';

    public const PAYLOAD =  <<<JSON
{
  "Currency": "usd",
  "Language": "en",
  "Country": "us",
  "Source": "API",
  "Affiliate": {
        "AffiliateCode": "ABCDE1234"
  },
  "Items": [
    {
      "Code": "K6DHJXGULK",
      "Quantity": 2
    }
],
  "BillingDetails": {
    "Address1": "Test Address",
    "City": "LA",
    "State": "California",
    "CountryCode": "US",
    "Email": "testcustomer@2Checkout.com",
    "FirstName": "Customer",
    "LastName": "2Checkout",
    "Zip": "12345"
  },
  "PaymentDetails":{
      "Type":"APPLE_PAY",
      "Currency":"USD",
      "CustomerIP":"10.10.10.10",
      "PaymentMethod":{
         "ApplePayToken":"ApplePayDataToken"
      }
   }
}
JSON;

}
class Client
{
    public function call(
        string $url = Configuration::URL,
        $payload = Configuration::PAYLOAD,
        string $action = Configuration::ACTION
    ): ?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, $payload]);
        return $soapClient->$action(...$args);
    }

    public function getClient(string $url): SoapClient
    {
        return new SoapClient(
            $url.'?wsdl',
            [
                '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;
        $algo = 'sha256';
        $hash = hash_hmac($algo, $string, $key);
        $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');
        return $client->login($merchantCode, $date, $hash, $algo);
    }
}
try {
    $client = new Client();
    var_dump($client->call());
} catch (Exception $ex) {
    var_dump($ex);
}

Interface templates

2Checkout provides a list of responsive templates meant for improving the customer experience during the checkout process.

The templates presented below are available in your Merchant Control Panel under Setup → Interface templates → Template Gallery.

Omnicart Flow Checkout (default) 

Desktop Version

The Omnicart Flow Checkout is a B2B and B2C shopping cart template with add-on products for cross-sales, promotions, and AOV management, optimized for companies on a SaaS or renewal license model. We've recently updated its layout to encompass CRO key findings and best practices and, thus, help merchants using this template see a 5-10% increase in their conversion rates. 

Among the key UX improvements, you can notice the reduced overall height and scroll on-page for the whole form by merging some sections and removing all redundant elements. We've also redesigned the Company/Person selector, changed the order of fields in the form, updated the Paypal payment method with optimized up-to-date flows, simplified texts, and payment method button selector, and added certification and trust logos immediately below the Place Order button on the Review Page.

omnicart flow checkout_desktop view_3.png

Mobile Version

omnicart flow checkout_mobile view_1.png 

omnicart flow checkout_mobile view_2.png

omnicart flow checkout_mobile view_3.png

omnicart flow checkout_mobile view_4.png

Scale Express Checkout 

Desktop version

templateA_1.png

templateA_2.png

Mobile Version

templateA_3.PNG  templateA_4.PNG  templateA_5.PNG

Swift-Pay Checkout 

Desktop version

templateB_1.PNG

templateB_2.PNG

Mobile Version

templateB_3.png  templateB_4.PNG  templateB_5.PNG

Global Optimizer Checkout 

Desktop version

templateC_1.PNG

templateC_2.PNG

templateC_3.PNG

Mobile Version

templateC_4.PNG  templateC_5.PNG  templateC_6.PNG

Digital Horizontal Flow Checkout 

Desktop version

templateD_1.PNG

Mobile Version

templateD_2.PNG  templateD_3.PNG  templateD_4.PNG

Drop-down Monetize Checkout 

Desktop version

templateE_1.PNG

templateE_2.PNG

Mobile Version

templateE_3.PNG  templateE_4.PNG  templateE_5.PNG  templateE_6.PNG

CompactPlus Checkout 

Desktop version

templateF_1.PNG

 Mobile Version

templateF_2.PNG  templateF_3.PNG  templateF_4.PNG templateF_5.PNG

 

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