Skip to main content

Add new partnership programs

Overview

Design multiple partnership programs and let your partners decide which is the right one for them.

After defining the partnership programs you can assign partners to it and apply settings to multiple partners at once.

Add partnership programs 

Follow the steps below to add a new partnership program.

  1. Login to the 2Checkout Merchant Control Panel.
  2. Go to Partner management -> Partnership programs.
  3. Click Add partnership program.
  4. Fill in the partnership program general information:
    • Program Title - mandatory;
    • Description - non-mandatory but offers useful information to partners.
  5. Click Commercial Settings.
  6. Choose how you want your partner to pay for orders, how the delivery should take place and how renewals are handled. These are not mandatory settings, so configure them at your will.
    • Offer a credit limit. This represents the amount a partner is allowed to owe you for placed and delivered orders. Credit limits set to 10.000 USD allow partners to place and receive orders in that amount, sending the payment at a later date. After this limit is reached, future orders will not be delivered until the credit limit has been restored. When choosing this option, you need to decide on:
      • Credit limit - maximum amount of credit your partners can use to place orders before sending the payment.
      • Warning level - when available credit decreases to the specified warning level, your partners are notified by email.
    • License settings. Define requirements regarding subscription delivery and management:
      • Requires end user information  - delivery of activation keys takes place after the end user information gets attached to the order. If your key generator requires end user information, this information is mandatory before delivering the keys even if the box remains unchecked.
      • Requires reseller information -  delivery of the activation keys takes place after the reseller information gets attached to the order. If your key generator requires reseller information, this information is mandatory before delivering the keys even if the box remains unchecked.
      • Email license keys to - define who receives the activation information. Select at least one of the two options available to ensure the success of the fulfillment/delivery process.
        • End users
        • Partner
    • Other settings
      • Partner offers tech support to end user - partner contact information is listed as technical/installation support in the electronic delivery email sent to the end users.
      • Orders are confirmed automatically change default order approval settings: by default, each partner order has to be manually reviewed and approved.
      • Order cancellation period - time period after order placement during which the order can be cancelled;
      • Enable Direct Renewal - enable end users who purchased products from your partners to renew subscriptions via your website or via 2Checkout while crediting the partners with the commissions you set. 2Checkout automatically notifies partners via email when you enable Direct Renewal.
      • Email subscription expiration notifications to:
        • End users (if end user information is available)
        • Partner
    • Partner margin
      • None - the offered partner margin is set to 0. In return, you may want to offer special prices to a partner directly from the pricing configuration/price list, or you may want to add partner margin when placing an order.
      • General margin - set a general margin for new acquisitions or renewals.
      • Margin per product/category - set specific margins for products or categories.
  7. Click Assign Partners.
  8. Click the unassigned partners that you want to be part of your partnership program.
  9. Click Review and Apply.
  10. Review the partnership program information.
  11. Click Save and Apply to Partners.

Place a renewal order

Overview

Renew a subscription and collect recurring revenue using the Subscription Reference. You can renew subscriptions for both catalog and dynamic products. The only requirement is to provide a valid subscription reference.

Requirements

To place a renewal order, you need to provide a valid subscription reference number.

Payment methods

You can place renewal orders using the following payment methods:

  • Credit/Debit cards: Visa, Visa Electron, MasterCard, Maestro, Amex, Discover, Dankort, Carte Bleue, JCB. 2Checkout supports local Brazilian cards.
  • PayPal and PayPal Express
  • Purchase Order
  • Wire
  • Check
  • WeChat Pay
  • iDEAL
  • Alipay
  • Trustly
  • TEST orders
  • Free orders (no payment information required)
  • Previous order references - In addition to the payment methods enumerated above, 2Checkout also supports 1-click purchase flows in which you use valid previous order references belonging to returning customers to pay for new orders with their previously used cards and PayPal accounts.
  • Order with installments
  • ApplePay
  • 2Pay.js
  • Boleto/Pix
  • Google Pay

Use the PaymentDetails object to change the payment method used in the ordering process.

Parameters

 
Parameters Type/Description
sessionID Required (string)
  Session identifier, the output of the Login method. Include sessionID into all your requests. Avangate 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.

To place an order with PayPal rather than PayPal Express, use PAYPAL as the type of the PaymentDetails object and send the shopper email and a return URL as part of the PaymentMethod object. See code sample. 

SubscriptionReference

Required (String)

Avangate generated subscription reference number. E.q. A8C5671BFE.

Response

 
Parameters Type/Description
Order information Object

Request

<?php

require ('PATH_TO_AUTH');

$Order = new stdClass();
$Order->Currency = 'USD';
$Order->Language = "EN";
$Order->Country = 'US';
$Order->CustomerIP = '91.220.121.21';
$Order->Source = "sourceAPI.net";
$Order->LocalTime = date('Y-m-d H:i:s');
$Order->BillingCycleReset = true; // or false
$Order->Items = array();

/**/
$Order->Items[0]->RenewalInformation = new stdClass();
$Order->Items[0]->RenewalInformation->SubscriptionReference = 'A8C5671BFE'; //subscription used in the renewal process
$Order->Items[0]->Price = new stdClass();
$Order->Items[0]->Price->Type = 'CUSTOM';
$Order->Items[0]->Price->Amount = '10';
$Order->Items[0]->PriceOptions = array('uniqscale1=4');//

$Order->Items[1]->RenewalInformation = new stdClass();
$Order->Items[1]->RenewalInformation->SubscriptionReference = 'WIZQ9NV0HZ';

$Order->MachineId = "MachineID";

$Order->BillingDetails = new stdClass();
$Order->BillingDetails->Address1 = 'Bil1ing address';
$Order->BillingDetails->Address2 = 'Billing address 2';
$Order->BillingDetails->City = 'Billing City';
$Order->BillingDetails->State = 'Billing State';
$Order->BillingDetails->CountryCode = 'US';
$Order->BillingDetails->Phone = 1231232123;
$Order->BillingDetails->Email = 'customer_details@test.com';
$Order->BillingDetails->FirstName = 'First';
$Order->BillingDetails->LastName = 'Customer';
$Order->BillingDetails->Company = 'Billing Company';
$Order->BillingDetails->Zip = '55104';

$Order->DeliveryDetails = new stdClass();
$Order->DeliveryDetails->Address1 = 'Bil1ing address';
$Order->DeliveryDetails->Address2 = 'Billing address 2';
$Order->DeliveryDetails->City = 'Billing City';
$Order->DeliveryDetails->State = 'Billing State';
$Order->DeliveryDetails->CountryCode = 'US';
$Order->DeliveryDetails->Phone = '12345';
$Order->DeliveryDetails->Email = 'customer_details@test.com';
$Order->DeliveryDetails->FirstName = 'First';
$Order->DeliveryDetails->LastName = 'Customer';
$Order->DeliveryDetails->Zip = "55104";

$Order->PaymentDetails = new stdClass();
$Order->PaymentDetails->Type = "CC";
$Order->PaymentDetails->Currency = $currency;

$Order->PaymentDetails->PaymentMethod = new stdClass();
/**/
$Order->PaymentDetails->PaymentMethod->CardNumber = "4111111111111111";
$Order->PaymentDetails->PaymentMethod->CardType = "VISA";
$Order->PaymentDetails->PaymentMethod->ExpirationYear = "2019";
$Order->PaymentDetails->PaymentMethod->ExpirationMonth = "12";
$Order->PaymentDetails->PaymentMethod->CCID = "123";
$Order->PaymentDetails->PaymentMethod->HolderName = "John Doe";
$Order->PaymentDetails->PaymentMethod->RecurringEnabled = TRUE;
$Order->PaymentDetails->PaymentMethod->HolderNameTime = 1;
$Order->PaymentDetails->PaymentMethod->CardNumberTime = 1;
/**/


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

$placeOrder = callRPC($jsonRpcRequest, $host);

var_dump ($placeOrder);
 

Convert a trial

Overview

Use the convertTrial method to convert a trial to a paid subscription. In the eventuality of a conversion failure, you can use convertTrial again for the same trial subscription only after you let 24 hours pass since the initial attempt. The Avangate system attempts to automatically convert trials before they expire to full subscriptions, unless you made an attempt that failed less than 24 hours before the scheduled expiration deadline.

In case the trial conversion fails due to a transaction issue, the Avangate system sends unfinished payment follow-up emails to customers, provided that you set up lead management for your account.

Parameters

Parameters

Type/Description

sessionID

Required (string)

 

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

SubscriptionReference

Required (string)

 

Unique, system-generated subscription identifier of the trial that you convert to a paid subscription. The unique identifier from the Avangate system:

  • Must belong to an active trial subscription with the recurring billing system (auto-renewal) enabled.
  • The initial order placed to access the trial subscription must be finalized (status Finished).

Note: This method does not work for cancelled and/or expired trial subscriptions.

 

Avangate charges customers using the payment data attached to the trial subscription. In the case of credit/debit cards, if customers update their payment information in myAccount or if you update these details on behalf of your subscribers, the Avangate system uses the latest card info provided to charge subscription renewals.

ExtendSubscriptionFromPaymentDate

Optional (boolean)

 

true = Set the moment of the conversion as the start date of the full subscription. 

Example: A 7 day trial purchased on October 29 for a monthly subscription converted on October 30 with $ExtendSubscriptionFromPaymentDate = true; features the following Billing cycle expiration: Nov 30, 2013 and Avangate scraps the initial trial expiration date November 5.

 

false = Set initial trial expiration deadline as the fhe full subscription start date. 

Example: A 10 day trial purchased on October 29 for a monthly subscription converted on October 30 with $ExtendSubscriptionFromPaymentDate = false; features the following Billing cycle expiration: December 9, with the first month period of the subscription added to the trial lifetime stretching until November 8.

 

Can be NULL. If not sent, the default value is false.

Response

Boolean

true or false depending on whether the changes were successful or not.

Request


<?php
$host   = "https://api.avangate.com";
$client = new SoapClient($host . "/soap/3.0/?wsdl", array(
    'location' => $host . "/soap/3.0/",
    "stream_context" => stream_context_create(array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false
        )
    ))
));

function hmac($key, $data)
{
    $b = 64; // byte length for md5
    if (strlen($key) > $b) {
        $key = pack("H*", md5($key));
    }
    
    $key    = str_pad($key, $b, chr(0x00));
    $ipad   = str_pad('', $b, chr(0x36));
    $opad   = str_pad('', $b, chr(0x5c));
    $k_ipad = $key ^ $ipad;
    $k_opad = $key ^ $opad;
    return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}
$merchantCode = "YOUR_MERCHANT_CODE";// your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$key = "YOUR_SECRET_KEY";// your account's secret key available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$now          = gmdate('Y-m-d H:i:s'); //date_default_timezone_set('UTC')
$string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
$hash   = hmac($key, $string);
try {
    $sessionID = $client->login($merchantCode, $now, $hash);
}
catch (SoapFault $e) {
    echo "Authentication: " . $e->getMessage();
    exit;
}
$SubscriptionReference = '30E47F8699';
$ExtendSubscriptionFromPaymentDate = true; //false can also be used if you want the subscription start date to be the moment when the trial was set to initially expire.
try {
    $convertedTrial = $client->convertTrial($sessionID, $SubscriptionReference, $ExtendSubscriptionFromPaymentDate);
}
catch (SoapFault $e) {
    echo "convertedTrial: " . $e->getMessage();
    exit;
}
var_dump("convertedTrial", $convertedTrial);

Retrieve an order

Overview

Use the getOrder method to retrieve details on a specific order placed with dynamic product information, or catalog products, using its unique, system generated reference.

Parameters

Parameters Type/Description

sessionID

Required (string)

 

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

orderReference

Required (string)

 

Order reference number of older order, which is already approved/paid.

Response

Parameters Type/Description

Order information

Object (orders with catalog products)

Order information Object (orders with dynamic product information)

Request 

<?php

require ('PATH_TO_AUTH');

$orderReference = 'YOUR_ORDER_REFERENCE';

$orderReference = '43403739';
try {
    $fullOrderDetails = $client->getOrder    ($sessionID, $orderReference);
}
catch (SoapFault $e) {
    echo "fullOrderDetails: " . $e->getMessage();
    exit;
}
var_dump("fullOrderDetails", $fullOrderDetails);
?>

 

 

Subscription upgrade

Overview

Retrieve information about the upgrade options for a specific subscription.

Trigger upgrade for your existing subscriptions, or set external references to a subscription by using the API methods displayed below.

 

Country-based promotions

Overview

Create promotions that apply based on your customer's country of purchase. Customers across the world respond to different incentives, therefore by making your promotions country-specific you are increasing the effectiveness of your marketing tools. Set promotions to apply to a certain country, region, or continent, depending on your business needs.

How it works

To make your promotions country-specific, follow these steps:

1. Set pricing localization

Geo-specific promotions work by incorporating a local pricing configuration in the promotion setup. Use pricing localization capabilities to define specific prices based on the customer's country/region/continent. Check our pricing localization article for learning how to define local prices for your products.

2. Assign pricing configurations to your promotions

To make your promotions geo-specific, click on Add pricing options when creating a promotion. Select the products that have a localized pricing scheme, and add the pricing configuration in the promotion setup.

promotion pricing options.png

Click on Add to promotion, to successfully add a localized pricing configuration to your promotion. 

Automatic billing canceled

Use the variables in the list below to customize the Automatic billing canceled shopper 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 Description Test value Mandatory

ALLOW_MYACCOUNT_PROMO

Include or exclude myAccount information in the email body

1

No
AVANGATE_LOGO Avangate logo URL https://secure.avangate.com/images/e...endor_logo.png Yes

BASE_URL

Merchant's full host

https://secure.avangate.com

No

BUSINESS_COMPANY

Avangate company name

Avangate

No

BUSINESS_SUPEMAIL

Avangate support email address

support@avangate.com

No

COMMERCIALNAME

Merchant's commercial name

[Software Company Name]

No

ENCRYPTED_MERCHANT_CODE

Encrypted merchant code

0

No

FIRSTNAME

Shopper's first name used on the billing information

[John

No

LANGUAGE

Order language (abbreviated) selected by shopper

en

No

LASTNAME

Shopper's last name used on the billing information

Doe]

No

PRODNAME

Product name

[Test product name]

Yes

PRODUCTS[index1].LICENSE_TYPE

Type of purchased subscription

0

No
SUBSCRIPTION_EXPIRATION_DATE Subscription expiration date. 2020-04-20 No

TECHEMAIL

Merchant support email address

support@software-company-website.com

No

TECHPHONE

Merchant support phone number

[888-xxx-xxxx]

No

USER_EMAIL

Email address used by shopper to login/signup to myAccount

example@customer-email.com

No

WEBSITE

Website where the shopper placed the order

http://www.software-company-website.com

No

Involuntary Churn Prevention

Overview

Involuntary churn happens when the use of products or services provided by the merchant is discontinued for reasons independent of the customer. Every year, cloud software and online services companies lose millions of dollars in potential recurring revenue to customer churn. While reducing churn is the main goal for any subscription-based business, most retention strategies neglect one of the biggest and most recoverable causes of lost recurring revenue: failed payment authorizations.

With more than 1/6 card transactions failing for one reason or another, implementing strategies to reduce and/or recover declined authorizations is one of the best investments any recurring-revenue based business can make. Just as there are many reasons for payments to fail, there are numerous ways to prevent and recover them. The most successful retention strategies use many of these tactics simultaneously, and advanced tracking and analytical tools to monitor and optimize results.

Involuntary Churn Prevention Tools

You can uplift your revenues by up to 20% by using 2Checkout's Involuntary Churn Prevention tools. These tools are available out-of-the-box, but also part of our 2Recover add-on:

  • Multi-currency Management – Improve localization and limit cart abandonment with the multi-currency management which offers access to local billing currencies and can help you increase authorization rates by up to 25%.
  • Intelligent Payment Routing – Intelligent Payment Routing enables you to match or route card transactions to the payment gateways best equipped to handle them and retry authorizations using a failover or back-up gateway.
  • Dynamic 3D Secure – Helps you achieve a positive impact on authorization in specific countries and mitigate fraud risks.
  • Account Updater Service – The Account Updater Service enables 2Checkout to automatically update subscription customer card data when cardholder information changes or goes out of date, thus allowing you to increase retention by up to 40%.
  • Expired Cards Updater – Identify and automatically update expired cards and increase authorization rates by up to 4%.
  • Advanced Retry Logic – When authorization fails due to a soft decline, you can retry a renewal 6 additional times, before and after the subscription expiration, and recover up to 20% of failed transactions.
  • Hard Decline Notifications – When authorization fails due to a hard decline, notify the subscriber via email including an easy way to update their payment method and increase renewal rates by up to 1%.
  • Dispute Prevention Service – Automatically refund disputes which are likely to become lost chargebacks and reduce chargeback fees.
  • Advanced Authorization Report – Monitor the impact of the 2Recover add-on and employ the insight to adjust and optimize your tactics to reduce churn.

 

Products with physical delivery

Overview

2Checkout is your reliable payment partner for receiving payments from customers worldwide. Depending on your business model, you can opt-in for selling electronic or physical products.

Catalog physical products

Use the Control Panel to manage your catalog of physical products, with advanced control over attributes such as: handling fee and product weight.

Create shipping methods that will be displayed to your customers in cart, based on product weight, customer location and other filters that you control. You can later confirm the shipment of your tangible products towards your customers.

Dynamic physical products

2Checkout enables you to receive orders placed with dynamic product information, even if you are selling tangible products.

Read this article to learn more about orders placed with dynamic product information.

 

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