Skip to main content

Customer

Attributes

Parameters

Type/Description

CustomerDetails

Object

 

2CheckoutCustomerReference

Optional (Int)

 

 

System-generated 2Checkout customer reference.

 

null when you create a new customer. The 2Checkout system generates default customer numerical (integer) IDs (AV_CUSTOMERID) automatically for all orders containing products that feature subscriptions.

 

 

Aggregate subscriptions under the same Customer account by adding the AV_CUSTOMERID (case sensitive) parameter to Buy links.

 

ExternalCustomerReference

Optional (string)

 

 

Unique customer alphanumeric (string) identifiers you control. Aggregate subscriptions under the same Customer account by adding the CUSTOMERID (case sensitive) parameter to Buy links.

 

FirstName

Required (string)

 

 

Customer's first name. 

 

LastName

Required (string)

 

 

Customer's last name.

 

Company

Optional (string)

 

 

Company name.

 

FiscalCode

Optional (string)

 

 

Can be null for end users. For companies, it needs to be the VAT ID, which 2Checkout validates.

2Checkout throws an error if the VAT ID is invalid/incorrect. When present, you also need to provide the company name.

 

Can be null for end users.

 

Address1

Required (string)

 

 

Customer's address.

 

Address2

Optional (string)

 

 

Customer's address.

 

City

Required (string)

 

 

Customer's city.

 

State

Optional (string)

 

 

Customer's state. For example, "Alabama","Alaska","Arizona".

 

Zip

Required (string)

 

 

Zip code.

 

CountryCode

Required (string)

 

 

Customer's country code (ISO 3166 two-letter code).

 

Phone

Optional (string)

 

 

Customer's phone number.

 

Fax

Optional (string)

 

 

Customer's fax number.

 

Email

Required (string)

 

 

Customer's email.

 

ExistingCards

Optional (Array of objects)

 

 

 

 

 

TransientToken

Optional (Object)

 

 

 

Populated only with when you retrieve customer information by SSOToken.

 

 

 

Token

Optional (string)

 

 

 

 

Token for the EXISTING_PAYMENT_DATA flow. Use it to charge customers using cards they used in the past for purchases from your 2Checkout account.

 

 

CardType

Optional (string)

 

 

 

visa, visaelectron, mastercard, maestro, amex, discover, dankort, cartebleue, jcb

 

 

LastDigits

Optional (string)

 

 

 

Last four digits of the credit card.

 

 

ExpirationMonth

Optional (string)

 

 

 

Card expiration month.

 

 

ExpirationYear

Optional (string)

 

 

 

Card expiration year.

 

 

NameOnCard

Optional (string)

 

 

 

Card holder name.

 

Enabled

Optional (boolean)

 

 

true or false, depending on whether the customer account is active or inactive. An active customer account features at least one Active or Past due subscription. Possible customer statuses:

 

  • Active - Customer account status is Active even if Trial and Cancelled/Expired subscriptions exist for the customer, along as there's at least one Active subscription. Customers with a single subscription featuring the Past due status (expired but in the grace period) are considered Active.
  • Inactive - All subscriptions associated to this Customer account are cancelled, expired or both.
  • Trial - Customer account status is Trial if all Active subscriptions for this customer are trials, regardless of any Cancelled/Expired subscriptions.

 

Trial

Optional (boolean)

 

 

true or false, depending on whether the customer account features only trials or also paid subscriptions.

 

Language

Optional (string)

 

 

ISO 639-1 two-letter code. Example: “en.”

 

Retrieve all groups

Overview

Use the getProductGroups method to extract information about the product groups you created for your account.

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.

Response

Parameters Type/Description

ProductGroup

Array of objects

Request

 <?php

require ('PATH_TO_AUTH');

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'getProductGroups',
'params' => array($sessionID)
);
var_dump (callRPC((Object)$jsonRpcRequest, $host));

?>

Increase sales and shopping cart conversion rates

Overview  

Online businesses across multiple industries are facing a significant impact on sales because of the economic pressure of social distancing. In the past weeks, the general purchasing mindset has been redirected to online channels with customer behavior driven by necessity. This translates into an upsurge in online shopping but a decline in sales for other businesses given the spending priorities are shifting amid the uncertainty.  

While you cannot control the outcome of the current crisis, you can still safeguard your revenue and improve the ordering experience to reduce cart abandons growing risks.   

We’ve gathered a list of best practices and eCommerce tools to help you optimize your business to get more customers, increase sales, and recover lost revenue from abandoning visitors or unfinished payments. 

Offer discounts and promotions 

Discount smartly with advanced promotions.

  • Set up Promotions for your products by accessing the Marketing Tools section in your Merchant Control Panel and select the Promotion category
  • Incentivize shoppers to purchase your products in larger quantities with volume discounts. Follow this simple guide to configure volume discounts for your products. 
  • Offer percentage-based discounts to your customers, based on the number of unique products added to the shopping cart. In this guide, we show you how to configure and apply multi-product discounts
  • Extend the control over prices displayed throughout the entire buying experience with special price promotions. You can follow each step in this guide and create special price promotions and define the final order price your customers will pay.

Expand to new markets 

Provide global reach for your offer and empower customers worldwide with the localized buying experience they expect. 

  • Access new audiences and increase conversion rates worldwide and in emerging eCommerce markets.  
  • You can enable more payment alternatives in the Ordering Options section in your Merchant Control Panel by selecting the payment methods you want to activate for your customers.  
  • When selling internationally with us, you don’t have to worry about currency conversions and language translation because we offer you the following tools out of the box:  
    • Currency conversion and order localization enabled by default, powered by our Geo-Location IP address detection. 
    • 200+ Billing countries, which you can edit at any time by going to the Order options category under the Setup section. 
    • Additionally, you can further optimize your products and increase conversion rates by translating their name, description, and marketing details in more than 30 languages.  
    • In order to edit the display language for your products, go to the Products category, click on Edit product and select the languages in which you want to translate them, and then add the translation. 

Test new optimized shopping carts 

Optimize your checkout experience through new shopping cart templates and implement a fully responsive design to offer an engaging ordering experience.  

  • Start using Convert Plus as your primary checkout experience. It is optimized for international and local sales and has a new layout meant to improve your conversion rates, average order value, and overall revenue. Check out the newest optimizations for Convert Plus.  
  • Use InLine Cart if you have a smaller product catalog and want to minimize the time a customer spends on the checkout process. 

Turn lost orders into satisfied customers 

Retain more customers and lower the number of unfinished payments and cart abandonment rates. Use order recovery follow-up emails to reduce unfinished payment rates with up to 20% and set up cart abandonment email notifications to convert free downloads into customers. 

  • Activate follow-ups for customers with declined payments to recover lost orders with customizable notifications. You can do this by enabling the follow-up setting for unfinished payments from the Lead Management section in your Merchant Control Panel. 
  • You can further customize follow-up emails from the Email template manager section. 
  • Customers who have abandoned their purchase can be reminded to return and continue shopping, and you can convert them into paying customers. Here is an easy way to adopt the abandoned cart follow-up configuration: 

For any additional information on how to use any of these features, reach out to our Merchant Support Team or to your account manager

 

Top 5 secrets for better customer retention

Retention plays a pivotal role in every software and online services companies' growth. It directly impacts customer lifetime value (CLTV) and is a key barometer of the health of your subscriber base.

Online companies need to understand how low authorization rates, payment failures, chargebacks, and refunds impact retention and ultimately your company's success.

Watch our webinar, with Adriana Iordan, Sr. Director of Product Management, and Radu Ionescu, Sr. Product Manager, at 2Checkout sharing insights into:

  • Case studies of customers who have successfully boosted their retention rate
  • Best practices and strategies to increase retention effectiveness
  • Key retention metrics including Authorization and Renewal Rates
  • Must-have tools and processes to maximize recurring revenues
Join Our Webinar

 

Upgrade price

Overview

Retrieve the upgrade price for a subscription.

Attributes

Parameters Type/Description

BillingPrice

Double

 

The price Avangate charges the customer, without taxes.

BillingGrossPrice

Double

 

The price Avangate charges the customer, including taxes.

BillingCurrency

String

 

The currency ISO code used for the payment - ISO 4217.

Quantity

Int

 

The mandatory quantity for the upgrade (you cannot make partial upgrades)

DisplayPrice

Double

 

Display price.

DisplayGrossPrice

Double

 

Display price before deductions.

DisplayCurrency

String

 

Display currency. ISO 4217 code.

ProratedPrice String
 

Net prorated price for the upgrade.

If the calculated upgrade price is 0, the prorated price is also send as 0. 

If customers upgrade to a product with a lower price, the total and net prices will be 0, however, the Prorated Price will be the negative calculated value. Use this information in case you want to refund customers for upgrades to lower priced subscription plans.

ProratedGrossPrice String
 

Gross prorated price for the upgrade.

If the calculated upgrade price is 0, the prorated gross price is also 0. 

If customers upgrade to a product with a lower price, the total and net prices will be 0, however, the Prorated Gross Price will be the negative calculated value. Use this information in case you want to refund customers for upgrades to lower priced subscription plans.

Discount Float
  Applied discounts
DiscountedProratedPrice Float
  Prorated net price for the upgrade with applied discounts
DiscountedProratedGrossPrice Float
  Prorated gross price for the upgrade with applied discounts
DiscountedBillingPrice Float
  Net billing price available for  the upgrade process with applied discounts
DiscountedBillingGrossPrice Float
  Gross billing price available for  the upgrade process with applied discounts
DisplayDiscount Float
  Discount displayed for the upgrade process
DiscountedDisplayPrice Float
  Net display price available for the upgrade process with applied discounts
DiscountedDisplayGrossPrice Float
  Gross display price available for the upgrade process with applied discounts

 

Follow-up emails for unfinished payments

Overview

Target customers granularly depending on who/what generated the unfinished payment:

  • The shopper: new acquisitions, trial purchases, manual renewals, and upgrades.
  • The 2Checkout system: automatic subscription renewals and trial conversions (recurring payment authorizations).

2Checkout collects shopper data by default during the ordering process and will send out a total of 15 notification emails covering all payment methods, according to your account's settings.

Notification type - basic, the message includes several links designed to let shoppers retry the transaction or select a different payment method.

Availability

Lead management is available for unfinished payments by default for all 2Checkout accounts, and, currently, only for catalog products.

Payment methods

2Checkout sends follow-up messages for unfinished payments made using one of the following payment methods:

  1. Instant Payment Methods (Visa/MasterCard, American Express, Diners Club, JCB, PayPal, Discover, 支付宝 (Alipay), WebMoney, iDEAL, OP-Pohjola, Nordea, Danske, Trustly, POLi, WeChat Pay, Trustpay, Skrill Wallet)
  2. Offline Payment Methods (Bank/Wire transfer, Check, Boleto/Pix, Giropay, UnionPay, Neteller)

Default settings

Emails are sent to shoppers who successfully placed an order that could not be finalized because of a payment process failure (e.g. insufficient funds, authorization declined, etc.).

By default, your account contains a single lead management campaign. The 2Checkout system will send out one email for unfinished payments to shoppers who used an online payment method to place the order. The follow-up email is sent two hours after the order is placed provided that the transaction fails to complete successfully. Default unfinished payment follow-up emails cover both transaction failure scenarios:

  • New acquisitions, trial purchases, manual renewals, and upgrades.
  • Automatic subscription renewals and trial conversions (recurring payment authorizations).

For offline payment methods, the sequence for unfinished payment emails can be as below:
•    Email 1: after 24 hours (no discount)
•    Email 2: after 72 hours (no discount)
•    Email 3: after 7 days (include a discount)

How to configure follow-up emails for unfinished payments

1. Log in to your 2Checkout account in the Merchant Control Panel.

2. Navigate to Dashboard → Marketing tools → Lead Management → Manage your leads.

3. Go to Order recovery → Unfinished payment, and click on the Edit button.

4. Under Follow-up settings, select Yes to enable order recovery follow-ups.

Follow-up settings

5. Select the payment type.

  • Instant Payment Methods (Visa/MasterCard/Eurocard, American Express, JCB, PayPal, Discover/Novus, 支付宝 (Alipay), WebMoney, iDEAL, sofortbanking.com, OP-Pohjola, Nordea, Danske, Trustly, POLi, Skrill Wallet, Neteller)
  • Offline Payment Methods (Bank/Wire transfer, Boleto/Pix, Giropay, UnionPay)

6. Enter the number of hours or days after the last failed charge attempt to wait before sending the follow-up email. Available time intervals:

  • Instant Payment Methods: from 1 hour up to 90 days.
  • Offline Payment Methods: from 1 to 30 days. The countdown begins immediately after the last failed charge attempt made by the 2Checkout system or as the result of a payment.

7. Select the follow-up type.

  • Recurring charges (system-generated): automatic subscription renewals and trial conversions (recurring payment authorizations). Imported subscriptions are also supported.
  • Manual purchases (shopper-generated): new acquisitions, trial purchases, manual renewals, and upgrades.

8. Click Update Settings to save your changes.

You can configure a total of 15 follow-up emails for all payment methods. Once added, existing follow-up emails can be removed at any time. You'll be able to view and customize the follow-up emails from the Email template manager section.

Follow-up emails

The 2Checkout system sends out two (2) different emails, based on the type of follow-up. Each notification contains special wording per the type of transaction failure it's designed to remedy:

  • Recurring charges (system-generated): only for failed transactions involving Credit/debit cards, PayPal and Direct Debit recurring charges for subscriptions acquired through iDeal.
  • Manual purchases (shopper-generated): for failed transactions involving instant payment methods, online Direct Debit, and offline payment methods.

Recommended settings

Type When Why?
Instant payment methods

1 hour

1 day

3 days

 

 

 

 

Configure follow-up messages for unfinished payments and increase order recovery rate to as much as 25% from all transaction failures.

 

Offline payment methods

1 day

3 days

7 days

Email buy-links

Buy-links included in the email will take users to a shopping cart containing the products added to the cart. Prices are calculated according to the pricing configurations of the products in cart at the time when the link is accessed. Promotions are taken into account only if they're still active and impacting the products in the cart. If On-the-fly pricing was used for the initial order that produced the unfinished payment, it will be reflected by the links sent to customers via the follow-up email.

FAQ

1. What will the follow-up email buy-link contain? 
In the follow-up email, a ConvertPlus retry payment link will be provided, for the shopper to finalize the previous order.
2. Does this cost me extra?
No. There is no fee associated with the activation or the use of Lead management unfinished payments functionality.
3. Will the ConvertPlus cart share the same look & feel like the current cart I am using? 
By default, ConvertPlus will use a standard template. If you are using a customized cart, the system will maintain the customizations in the unfinished payments link and the shopper will experience the same look and feel throughout the ordering flow.
4. Will the functionality be supported for orders placed via connector/third-party Integration? 
Yes. A ConvertPlus retry payment link will be generated also for orders placed via connectors/third-party integrations.

Retrieve all campaigns

Overview

Use the searchCrossSellCampaigns method to extract information about the cross-sell campaigns you configured.

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.

Response

Parameters Type/Description

CrossSellCampaign

Object

Request

<?php

require ('PATH_TO_AUTH');

$jsonRpcRequest = new stdClass();
$jsonRpcRequest->jsonrpc = '2.0';
$jsonRpcRequest->method = 'searchCrossSellCampaigns';
$jsonRpcRequest->params = array($sessionID);
$jsonRpcRequest->id = $i++;

var_dump(" \n Cross-sell campaigns: \n", callRPC($jsonRpcRequest, $host));

Retrieve an affiliate by code

Overview

Use the getAffiliate method to extract details about an affiliate by code.

Request Parameters

Parameters Required Type/Description
AffiliateCode Required String. Unique code which represents an affiliate.

Request Example

<?php
$apiVersion = '6.0';
// $apiHost = "http://api.secure.avangate.local";
$apiHost = "http://api.sandbox34.avangate.local";

$host = $apiHost."/soap/" . $apiVersion . "/";

$client = new SoapClient($host."?wsdl", array('location' => $host, 'cache_wsdl' => WSDL_CACHE_NONE));
$client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');

// $merchantCode = "AKULAJQW";
// $key = "P5LX&a&9=4Z)1!2L2*0N";

$merchantCode = "lucian";
$key = "SECRET_KEY";

$date = gmdate('Y-m-d H:i:s');
$string = strlen($merchantCode) . $merchantCode . strlen($date) . $date;
$hash = hash_hmac('md5', $string, $key);

try {
    $sessionID = $client->login($merchantCode, $date, $hash);
} catch (SoapFault $e) {
    echo  $e->getMessage();

}

var_dump("session: ". $sessionID);

$affiliateId = "79396127BA";
// Active:
// 1295 - 964CF2AF42
// 11541 - E4B69882C2
// 12951 - E8A1DB473C
// 12950 - 44857BFE94

// Pending:
// 13639 - F56BCF1E2E

// Rejected
// 65602 - 79396127BA

try {
    $response = $client->getAffiliate($sessionID, $affiliateId);
    print_r(json_encode($response));

} catch (SoapFault $e) {
    echo  $e->getMessage();
}

// print_r($response);

Response Parameters

Parameters Description

AffiliateCode

Unique, system-generated identifying code of the affiliate.
Status Merchant Affiliate relationship status.
AffiliateName Name of the affiliate.
Website Website of the affiliate.
CommissionList Affiliate commission list.
                                        ListName Name of the affiliate commission list.
                                        CommissionRate Value of the commission rate (in %).
RequestDate  
Categories Product category  of the affiliate.
NotifyUpdates Boolean. Value can be TRUE or FALSE.
TCSStatus  
AffiliateContact Affiliate contact details.
                                         FirstName Affiliate first name.
                                         LastName Affiliate last name.
                                        Phone Affiliate phone number.
                                        Email Affiliate email.
                                        Country Country of the affiliate.

Response Example

{  
   "AffiliateCode":"TFTF76455ee4YFCFCT6545465",
   "Status":"Active",
   "Affiliate Name":"STIC Soft E-Solutions Private Limited",
   "Website":"https://debasis.2checkout.com",
   "CommissionList":  {  
         "ListName":"CommissionList1",
         "CommissionRate":"25%"
    },
   "RequestDate":"2018-10-05",
   "Categories":["PC security","Mobile security","Tablet security"],
   "TCStatus":"Accepted",
   "AffiliateContact":{  
      "FirstName":"FN",
      "LastName":"LN",
      "Phone":"0040723483987",
      "Email":"FN.LN@2AFFLT.COM",
      "Country":"Spain"
   }
}

Shipping fees

Overview

Use this object to retrieve information about shipping fees. 

Parameters

ShippingFee

Array of objects

Name

String

 

The name of the shipping fee configuration. 

Code String
  Unique, system-generated shipping fee identifier. 

Amount

String

 

The shipping costs

Currency

String

 

The currency ISO code used for shipping costs - ISO 4217.

ApplyTo

String

 

Possible values:

• PRODUCT

• ORDER

Type

String

 

 

Possible values:

• FIXED

• PERCENT

 

Add leads for catalog products

Overview

The lead management functionality that exists for the ConvertPlus cart can be also integrated with a self-hosted cart.

Use the addLead method to create a lead when a customer abandons the cart before placing an order.

Request Parameters

Parameters Required Type/Description
Items Required Purchased products.
BillingDetails Required Array of strings. Billing information for the order.
DeliveryDetails Required Array of strings. Delivery information for the order.

Request Example

<?php

require ('PATH_TO_AUTH');

$Lead = new stdClass();

$Lead->CartId = "CartIdValue";
$Lead->Currency = "EUR";
$Lead->Language = "EN";
$Lead->ExternalReference = "REST_API_2CHECKOUT";
$Lead->Source = "testAPI.com";
$Lead->CustomerReference = "asdf1";
$Lead->MachineId = "123asd";

$Lead->Items = [];

$Item = new stdClass();
$Item->Code = "04C26C50F8";
$Item->Quantity = 2;
$Item->IsDynamic = false;
$Item->Tangible = true;
$Item->PurchaseType = "PRODUCT";
$Item->PriceOptions = [];

$priceOption = new stdClass();
$priceOption->Name = "group name 1";
$priceOption->Required = false;
$option = new stdClass();
$option->Name = 'add25';
$option->Value = 'add25';
$option->Surcharge = 100;
$priceOption->Options[] = $option;

$Item->PriceOptions[] = $priceOption;

$recurringOptions = new stdClass();
$recurringOptions->CycleLength = 6;
$recurringOptions->CycleUnit = 'MONTH';
$recurringOptions->CycleAmount = 100;
$recurringOptions->ContractLength = 2;
$recurringOptions->ContractUnit = 'YEAR';
$Item->RecurringOptions = $recurringOptions;

$marketingCampaigns = new stdClass();
$marketingCampaigns->Type = 23;
$marketingCampaigns->ParentCode = "m";
$marketingCampaigns->CampaignCode = 23;
$Item->MarketingCampaigns = $marketingCampaigns;

$Item->Price = new stdClass();
$Item->Price->Amount = 20;
$Item->Price->Type = "CUSTOM";

$additionalFields = [];

$additionalField = new stdClass();
$additionalField->Code = "TestFieldOne";
$additionalField->Text = "test text";
$additionalField->Value = "test value";
$additionalFields[] = $additionalField;
$Item->AdditionalFields = $additionalFields;

$Item->SubscriptionStartDate = date("Y-m-d H:i:s");

$Lead->Items[] = $Item;

$billingDetails = new stdClass();
$billingDetails->FirstName = "Customer";
$billingDetails->LastName = "2Checkout";
$billingDetails->Phone = null;
$billingDetails->Company = null;
$billingDetails->FiscalCode = "32423423";
$billingDetails->Email = "customer@2checkout.com";
$billingDetails->Address1 = "Test Address";
$billingDetails->Address2 = null;
$billingDetails->City = "LA";
$billingDetails->Zip = "12345";
$billingDetails->CountryCode = "RO";
$billingDetails->State = "CA";

$Lead->BillingDetails = $billingDetails;
$Lead->DeliveryDetails = clone($billingDetails);

$Lead->DeliveryInformation = new stdClass();
$Lead->DeliveryInformation->ShippingMethod = new stdClass();
$Lead->DeliveryInformation->ShippingMethod->Code = "sdfsd";

$Lead->PaymentDetails = new stdClass();
$Lead->PaymentDetails->Type = "CC";
$Lead->PaymentDetails->Currency = "EUR";
$Lead->PaymentDetails->PaymentMethod = new stdClass();
$Lead->PaymentDetails->PaymentMethod->RecurringEnabled = false;
$Lead->PaymentDetails->PaymentMethod->CardPayment = new stdClass();
$Lead->PaymentDetails->PaymentMethod->CardPayment->InstallmentsNumber = 23;
$Lead->PaymentDetails->CustomerIP = "1.2.3.4";

$Lead->LocalTime = date("Y-m-d H:i:s");

$jsonRpcRequest = array (
    'method' => 'addLead',
    'params' => array($sessionID, $Lead),
    'id' => $i++,
    'jsonrpc' => '2.0'
);

var_dump (callRPC((Object)$jsonRpcRequest, $host, true));

Response Example

class stdClass#18 (3) {
  public $LeadCode =>
  string(10) "60E6C4B574"
  public $CreatedAt =>
  string(19) "2019-11-05T16:39:36"
  public $Errors =>
  array(0) {
  }
}

 

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