Skip to main content

Update a subscription plan/product

Overview

Use the updateProduct method to update the configuration of a subscription plan/product you already configured for your account.

Parameters

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.

Product

Required (object)

 

Use this object to configure your subscription plans/products.

 

You can update/edit all parameters, except the following:

  • AvangateID
  • ProductType

 

When updating a subscription plan/product, you also update its PricingConfigurations. However, you cannot modify:

  • The pricing configuration CODE.
  • The PricingSchema from DYNAMIC to FLAT or vice versa.

Response

bool(true)

Request

<?php

$host   = "https://api.avangate.com";
$client = new SoapClient($host . "/soap/4.0/?wsdl", array(
    'location' => $host . "/soap/4.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 = "YOURCODE123"; //your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$key          = "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;
}

$ProductCode = 'NewSubscriptionPlan_Code_12345';

try {
    $ProdbyCode = $client->getProductByCode($sessionID, $ProductCode);
}

catch (SoapFault $e) {
    echo "ProductInfo: " . $e->getMessage();
    exit;
}

var_dump("ProductInfo", $ProdbyCode);

$ProdbyCode->ProductName = 'NewSubscriptionPlan_Name_2.0';

try {
    $NewSubscriptionPlan = $client->updateProduct($sessionID, $ProdbyCode);
}

catch (SoapFault $e) {
    echo "UpdatedProductInfo: " . $e->getMessage();
    exit;
}

var_dump("UpdatedProductInfo", $NewSubscriptionPlan);

?>

Retrieve subscription plan/product info

Overview

Use the searchProducts method to extract information about the subscription plan/products you configured for your account.

Pagination

Use pagination to decrease the request loading time, while better handling the returning responses.

Pagination works on all the search methods existing on 2Checkout API 5.0. The default pagination behavior is to display page 1 with 10 results. The maximum number of items displayed on a single page is 200.

To use pagination, include the Pagination object inside the search method call, using the parameters below:

Parameters Type/Description
Pagination Object
  Details below.
  Page Int
    Set the number of pages that should be returned.
  Limit Int
    Set a limit for the number of results that should be returned.

 

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.

SearchOptions

Object

 

Name

Optional (string)

 

Product name. Can be NULL.

 

Codes

Optional (StringArray)

 

Array of product codes.

 

Types

Optional (StringArray)

 

Array of the values representing the type of products. Possible values:

  • REGULAR
  • BUNDLE

Leave empty to have all product types returned to the search.

Can be NULL. If NULL, 2Checkout returns both regular and bundle products.

 

Enabled

Optional (boolean)

 

True or false. Can be NULL.

 

GroupName

Optional (string)

 

The name of the group that the product is associated with.

Can be NULL.

 

Limit

Optional (integer)

 

Number of results (products) displayed per page. Default value is 10.

Can be NULL.

 

Page

Optional (integer)

 

A specific page of search results. Default value is 1.

Can be NULL.

 

OrderBy

Object

 

Defines the order of the returned results.

 

Field

Optional (string)

 

The name of the field to order the results by. Allowed values: 'ProductStatus', 'ProductName', 'ProductCode', 'UpdateDatetime', 'AvangateId'. Can be NULL.

 

Direction

Optional (string)

 

Sort results ascending or descending. Allowed values:

  • asc
  • desc (default)

Can be NULL (defaults to desc).

 

Request

<?php

require ('PATH_TO_AUTH');

$SearchOptions = new stdClass();
$SearchOptions->Name = '2Checkout Subscription'; //Product name
$SearchOptions->Types = array ('REGULAR', 'BUNDLE'); //product type (standalone), regular or bundle
$SearchOptions->Enabled = True;
//$SearchOptions->GroupName = '';
$SearchOptions->Limit = '10';
$SearchOptions->Page = '10';

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

?>

Response

Parameter Type/Description

Product

Object

Follow-up unfinished instant payment methods

Overview

2Checkout automatically sends out the Follow-up unfinished Instant payment methods email as part of the overall strategy to increase the conversion rate for new purchases. Shoppers receive unfinished payment follow-up messages if they place orders, but 2Checkout cannot successfully complete transactions and collect funds. This notification makes it easy for customers to return to the shopping cart and finalize a purchase without having to go back through the ordering process.

Availability

The lead management set of tools is available for 2Monetize accounts (merchants on the Reseller business model).

Follow-up emails

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

  1. Instant payment methods (Visa/MasterCard/Eurocard, American Express, Diners Club, JCB, PayPal, Discover/Novus, Chinese Debit Card, 支付宝 (Alipay), WebMoney, iDEAL, sofortbanking.com).
  2. Online direct debit.

Failed transactions can happen because of various reasons, such as expired cards, insufficient funds, authorization declined, etc.

You can add follow-ups, up to a maximum of 15 notification emails.

Email content

The email includes:

  1. Link to the shopping cart for the retry.
  2. Alternative payment methods to finalize the purchase.
  3. Order, product, and subscription details.

Sample emails

Follow-Up Unfinished Payment Methods

Preview and test the email

Navigate to the Email template manager section to:

  • Preview and test current templates for emails sent to your shoppers
  • Customize the header and the footer sections by creating custom templates you can assign to your emails

Access the Follow-up unfinished Instant payment methods email under the Follow-Up section.

Why don't I see the new template for this email?

The redesigned template for this email has automatically replaced default templates.

If your preview of the follow-up notification does not show the new template, you are most probably using a customized version that includes content and/or styling your company requested at a certain point in time.

You can compare the above sample to your current template and send us an email if you decide the new one suits your business needs better. We will work with you on the switch.

Subscription upgrade

Overview

The object below is returned directly or within a successful response from the following API requests:

Retrieve upgrade options

Subscription upgrade object

Parameters Type/Description

ProductInfo

Object

               

Details below.

 

ProductId

Int

 

 

Unique, system-generated product identifier belonging to the upgrade product.

 

ProductCode

String

 

 

Unique product identifier that you control belonging to the upgrade product.

 

ProductName

String

 

 

Product name

 

ProductVersion

String

 

 

The product version number that you control.

 

ProductEnabled

Boolean

 

 

Possible values:

0 – You disabled this product.

1 – You enabled this product.

 

ProductType

String

 

 

REGULAR or BUNDLE

 

Currency

String

 

 

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

 

DefaultCurrency

String

 

 

The product's default currency which is set in the Control Panel. The currency ISO code to be used for the payment - ISO 4217.

 

Price

Double

 

 

Product price. Can be null for flat pricing schemes. You need to call getPrice with Quantity, Currency and Price Options parameters to get a valid price.

 

GiftOption

String

 

 

True or false depending on whether the product can be gifted or not.

 

IdGroup

Int

 

 

Product Group ID number.

 

GroupName

String

 

 

The name of the Product Group.

 

ShortDescription

String

 

 

The product's short description.

 

ProductImage

String

 

 

URLs to the product images uploaded into the Avangate platform.

 

Languages

Array of strings

 

 

Array of ISO language codes for the product - ISO 639-1.

 

PriceIntervals

Array of objects

 

 

Pricing intervals.

 

PriceType

String

 

 

NET or GROSS

 

PriceSchema

String

 

 

FLAT or DYNAMIC

Quantity

Int

 

Number of units available for the upgrade order.

PriceOptions

Array of objects

 

Details below.

 

Id

String

 

 

Pricing options ID.

 

Name

String

 

 

Pricing options group name.

 

Description

String

 

 

The description of the Pricing options group

 

Required

Boolean

 

 

True or False depending on whether you set the Pricing options group asrequired or not.

 

Type

String

 

 

Pricing options group type:

  • COMBO
  • CHECKBOX
  • RADIO

INTERVAL

 

Options

Array of objects

 

 

Details below.

 

 

Name

String

 

 

 

The name of the option inside the Pricing options group

 

 

Value

String

 

 

 

The code of the option inside the Pricing options group

 

 

Default

Boolean

 

 

 

True or false.

 

 

Description

String

 

 

 

The description of the option inside the Pricing options group.

 

 

MinValue

Int

 

 

 

Start value of a scale interval.

 

 

MaxValue

Int

 

 

 

End value of a scale interval.

 

Retrieve order status information

Overview

Get information about an existing order.

Requirements

Parameters

Parameters Type/Description
sessionID Required (String)
  Session identifier, which is the output of the Login method. An exception is thrown if the values are incorrect.
refNo Required (String)
  The unique, system-generated identifier of a partner order.

Response

Parameters Type/Description
Order Object

Request

<?php

require('PATH_TO_AUTH'); // Authentication example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/02Authentication
require('PATH_TO_setPartner'); // setPartner example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/06Reference/Partner/00Set_partner

$refNo = 'YOUR_ORDER_REFERENCE'

try {
    $Order= $client->getOrderStatus($sessionID, $refNo);
} catch (SoapFault $e) {
    echo "Orderinfo: " . $e->getMessage();
    exit;
}
var_dump ("Orderinfo", $Order);

Errors

Error Description

INVALID_PARTNER

No partner is set.

INVALID_REFERENCE

The provided order reference is invalid.

 

Extend a subscription

Overview

Extend the lifetime of a subscription in the Avangate system on-demand. Use the extendSubscription method to set a new expiration deadline for a subscription.

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.

Days

Required (int)

 

Avangate prolongs the lifetime of a subscription using the number of days you send, adding the interval on top of the expiration date.

 

Hint: Use a negative number to reduce the lifetime of a subscription.

 

Cannot be NULL.

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/4.0/?wsdl", array(
    'location' => $host . "/soap/4.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;
}
$SubscriptionReferenceTest = '48F5AC7011';
$days = 7;
try {
    $extendedSubscription = $client->extendSubscription($sessionID, $SubscriptionReferenceTest, $days);
}
catch (SoapFault $e) {
    echo "extendedSubscription: " . $e->getMessage();
    exit;
}
var_dump("extendedSubscription", $extendedSubscription);

Additional fields

Overview

This object is returned directly or within a successful response from the following API requests:

  Retrieve an additional field                               Retrieve assigned additional fields                              Retrieve all additional fields    

Additional fields object

Parameters Object

Label

String

 

Field text.

Code

String

 

Field identifier. Alpha-numeric chars, underscores and dashes.

Type

String

 

Field type:

  • LISTBOX
  • CHECKBOX
  • TEXT
  • HIDDEN

ApplyTo

Sting

 

  • ORDER
  • PRODUCT

Values

Array of values

 

Custom values you control.

ValidationRule

String

 

The validation rule restricting the type of information shoppers can enter in the additional field during the purchase process.

Translations

Array of objects

 

Details below.

                Label

String

 

Field text translated in the language of the Translations object.

               Values

Object

 

Custom values you control translated in the language of the Translations object.

               Language

String

 

ISO language code. (ISO 639-1 two-letter code).

 

Retrieve pricing list information

Overview

Get the extended info about the pricing list available for a partner, including the products and their pricing options, based on the pricing list code.

Requirements

Parameters

Parameter Type/Description
sessionID Required (string)
  Session identifier, which is the output of the Login method. An exception will be thrown if the values are incorrect
pricingListCode Required (string)
  The unique identifier of the pricing list.

Response

Parameter Type/Description
PricingList Object

Request

<?php

require('PATH_TO_AUTH'); // Authentication example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/02Authentication
require('PATH_TO_setPartner'); // setPartner example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/SOAP/06Reference/Partner/00Set_partner

$pricingListCode = 'YOUR_PRICING_LIST_CODE';

try {
    $PartnerPricingListInfo= $client->getPricingListInformation ($sessionID, $pricingListCode);
} catch (SoapFault $e) {
    echo "PricingLists: " . $e->getMessage();
    exit;
}
var_dump ("PricingLists", $PartnerPricingListInfo);

Error

Error Description
INVALID_PARTNER No partner is set.
PARTNER_PRICING_LISTS_NOT_FOUND There are no pricing lists with provided code.

Retrieve assigned additional fields

Overview

Use the getAssignedAdditionalOrderFields method to extract information about the additional fields assigned to a specific product.

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.

productCode

Required (string)

 

The editable code that you control at product-level, not the unique, system-generated product ID.

Request

<?php

require ('PATH_TO_AUTH');

$productCode = 'YOUR_PRODUCT_CODE';

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

?>

Response

Parameters Type/Description

AdditionalField

Array of objects

Use WebMoney

Overview

Place an order with catalog products defined in your Merchant Control Panel and collect the payment using WebMoney.

Requirements

Shoppers in the CIS (Commonwealth of Independent States) area, Russia, and Asia (Malaysia, Indonesia) can purchase using WebMoney. 

Supported currencies

WebMoney supports transactions in EUR.

Workflow

  1. If the shopper is paying with any one of the supported currencies, they can use WebMoney as a payment method in the shopping cart.
  2. After the order is generated by calling the placeOrder method, in the order's details the shopper will find a URL where they need to be redirected in order to finish the payment.
  3. The URL can be found in the PaymentDetails/PaymentMethod response object, under the Redirect attribute. The shopper needs to be redirected to that URL via a POST call, with the parameters available in the API response sent to the URL.
  4. Once the shopper finishes the payment process on the WebMoney side, the order will be updated in the 2Checkout system as well.

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

require ('PATH_TO_AUTH');

$Order = new stdClass();
$Order->RefNo = NULL;
$Order->Currency = 'EUR';
$Order->Country = "RO";
$Order->Language = 'EN';
$Order->CustomerIP = '10.5.22.197';
$Order->ExternalReference = NULL;
$Order->Source = NULL;
$Order->Affiliate = new stdClass();
$Order->Affiliate->AffiliateCode = 'Partner123'
$Order->Affiliate->AffiliateSource = 'MobilePlatform'
$Order->CustomerReference = NULL;
$Order->Items = array();
$Order->Items[0] = new stdClass();
$Order->Items[0]->Code = 'a01';
$Order->Items[0]->Quantity = 1;
$Order->Items[0]->PriceOptions = NULL;
$Order->Items[0]->SKU = NULL;
$Order->Items[0]->Price = NULL;
$Order->Items[0]->CrossSell = NULL;
$Order->Items[0]->Trial = false;
$Order->Items[0]->AdditionalFields = NULL;
$Order->Items[0]->SubscriptionStartDate = NULL;
$Order->BillingDetails = new stdClass();
$Order->BillingDetails->FirstName = 'John';
$Order->BillingDetails->LastName = 'Doe';
$Order->BillingDetails->CountryCode = "RO";
$Order->BillingDetails->State = 'Bucharest';
$Order->BillingDetails->City = 'Bucharest';
$Order->BillingDetails->Address1 = 'Street Name 555';
$Order->BillingDetails->Address2 = NULL;
$Order->BillingDetails->Zip = '1111111';
$Order->BillingDetails->Email = 'test@2checkout.com';
$Order->BillingDetails->Phone = '00402505555';
$Order->BillingDetails->Company = 'blank';
$Order->DeliveryDetails = new stdClass();
$Order->DeliveryDetails->FirstName = 'John';
$Order->DeliveryDetails->LastName = 'Doe';
$Order->DeliveryDetails->CountryCode = 'NZ';
$Order->DeliveryDetails->State = 'Bucharest';
$Order->DeliveryDetails->City = 'Bucharest';
$Order->DeliveryDetails->Address1 = 'Street Name 555';
$Order->DeliveryDetails->Address2 = NULL;
$Order->DeliveryDetails->Zip = '1111111';
$Order->DeliveryDetails->Email = 'test@2checkout.com';
$Order->DeliveryDetails->Phone = '00402505555';
$Order->DeliveryDetails->Company = NULL;
$Order->PaymentDetails = new stdClass ();


$Order->PaymentDetails->Type = 'WEBMONEY';
$Order->PaymentDetails->Currency = 'EUR';
$Order->PaymentDetails->HadPayPalToken = false;
$Order->PaymentDetails->CustomerIP = '10.5.22.197';

$Order->PaymentDetails->PaymentMethod = new stdClass ();
$Order->PaymentDetails->PaymentMethod->ReturnURL = 'https://yourreturnurl.com';
$Order->PaymentDetails->PaymentMethod->CancelURL= 'https://yourcancelurl.com ';

$Order->Promotions = NULL;
$Order->AdditionalFields = NULL;
$Order->LocalTime = NULL;
$Order->GiftDetails = NULL;

try {
   $newOrder = $client->placeOrder($sessionID, $Order);
   var_dump($newOrder);
}
catch (SoapFault $e) {
    echo "newOrder: " . $e->getMessage();
    exit;
}
?>

Response Parameters

Parameter Type/Description

Order information

Object

  Object containing order information.

 Response Example

{
    "RefNo": "189878812",
    "OrderNo": 0,
    "ExternalReference": null,
    "ShopperRefNo": null,
    "Status": "PENDING",
    "ApproveStatus": "WAITING",
    "VendorApproveStatus": "OK",
    "MerchantCode": "251772850506",
    "Language": "en",
    "OrderDate": "2022-08-23 14:52:20",
    "FinishDate": null,
    "Source": "testAPI.com",
    "WSOrder": null,
    "Affiliate": {
        "AffiliateCode": null,
        "AffiliateSource": null,
        "AffiliateName": null,
        "AffiliateUrl": null
    },
    "HasShipping": true,
    "BillingDetails": {
        "FiscalCode": null,
        "TaxOffice": null,
        "Phone": "010-6552-9988",
        "FirstName": "John",
        "LastName": "Doe",
        "Company": null,
        "Email": "test@verifone.com",
        "Address1": "Test Address",
        "Address2": null,
        "City": "Test City",
        "Zip": "35005",
        "CountryCode": "de",
        "State": null
    },
    "DeliveryDetails": {
        "Phone": "010-6552-9988",
        "FirstName": "John",
        "LastName": "Doe",
        "Company": null,
        "Email": "test@verifone.com",
        "Address1": "Test Address",
        "Address2": null,
        "City": "Test City",
        "Zip": "35005",
        "CountryCode": "de",
        "State": null
    },
    "PaymentDetails": {
        "Type": "WEBMONEY",
        "Currency": "eur",
        "PaymentMethod": {
            "Amount": "35.5",
            "Currency": "eur",
            "Redirect": {
                "Url": "https://psp.paymaster24.com/Payment/Init",
                "Method": "POST",
                "Params": {
                    "LMI_MERCHANT_ID": "094c1995-1c81-4779-bf14-79e0127a0aed",
                    "LMI_PAYMENT_AMOUNT": "35.5",
                    "LMI_PAYMENT_NO": "189878812",
                    "LMI_PAYMENT_DESC": "Payment for Avangate: #189878812",
                    "LMI_SIM_MODE": "",
                    "LMI_CURRENCY": "EUR",
                    "LMI_SUCCESS_URL": "https://yourreturnurl.com",
                    "LMI_FAILURE_URL": "https://yourreturnurl.com"
                },
                "FullHtml": "<!DOCTYPE html><html><body><form action=\"https://psp.paymaster24.com/Payment/Init\" method=\"POST\" id=\"postform\"><input type=\"hidden\" name=\"LMI_MERCHANT_ID\" value=\"094c1995-1c81-4779-bf14-79e0127a0aed\" /><input type=\"hidden\" name=\"LMI_PAYMENT_AMOUNT\" value=\"35.5\" /><input type=\"hidden\" name=\"LMI_PAYMENT_NO\" value=\"189878812\" /><input type=\"hidden\" name=\"LMI_PAYMENT_DESC\" value=\"Payment for Avangate: #189878812\" /><input type=\"hidden\" name=\"LMI_SIM_MODE\" value=\"\" /><input type=\"hidden\" name=\"LMI_CURRENCY\" value=\"EUR\" /><input type=\"hidden\" name=\"LMI_SUCCESS_URL\" value=\"https://api.2checkout.com/order/gateway_return.php\" /><input type=\"hidden\" name=\"LMI_FAILURE_URL\" value=\"https://api.2checkout.com/order/gateway_cancel.php\" /></form><script type=\"text/javascript\">document.getElementById(\"postform\").submit();</script></body></html>"
            },
            "ReturnURL":https://yourreturnurl.com,
            "CancelURL": https://yourcancelurl.com,
            "Vendor3DSReturnURL": null,
            "Vendor3DSCancelURL": null,
            "InstallmentsNumber": null
        },
        "CustomerIP": "91.220.121.21"
    },
    "DeliveryInformation": {
        "ShippingMethod": {
            "Code": null,
            "TrackingUrl": null,
            "TrackingNumber": null,
            "Comment": null
        }
    },
    "CustomerDetails": null,
    "Origin": "API",
    "AvangateCommission": 2.63,
    "OrderFlow": "REGULAR",
    "GiftDetails": null,
    "PODetails": null,
    "ExtraInformation": null,
    "PartnerCode": null,
    "PartnerMargin": null,
    "PartnerMarginPercent": null,
    "ExtraMargin": null,
    "ExtraMarginPercent": null,
    "ExtraDiscount": null,
    "ExtraDiscountPercent": null,
    "LocalTime": null,
    "TestOrder": false,
    "FxRate": 0.960096,
    "FxMarkup": 4,
    "PayoutCurrency": "USD",
    "DeliveryFinalized": false,
    "Errors": null,
    "Items": [
        {
            "ProductDetails": {
                "Name": "Test Product",
                "ShortDescription": "<p>Join all your clouds in a big one</p>",
                "Tangible": false,
                "IsDynamic": false,
                "ExtraInfo": null,
                "RenewalStatus": false,
                "Subscriptions": null,
                "DeliveryInformation": {
                    "Delivery": "BY_AVANGATE",
                    "DownloadFile": null,
                    "DeliveryDescription": "",
                    "CodesDescription": "",
                    "Codes": []
                }
            },
            "PriceOptions": [],
            "Price": {
                "UnitNetPrice": 29.83,
                "UnitGrossPrice": 35.5,
                "UnitVAT": 5.67,
                "UnitDiscount": 0,
                "UnitNetDiscountedPrice": 29.83,
                "UnitGrossDiscountedPrice": 35.5,
                "UnitAffiliateCommission": 0,
                "ItemUnitNetPrice": null,
                "ItemUnitGrossPrice": null,
                "ItemNetPrice": null,
                "ItemGrossPrice": null,
                "VATPercent": 19,
                "HandlingFeeNetPrice": 0,
                "HandlingFeeGrossPrice": 0,
                "Currency": "eur",
                "NetPrice": 29.83,
                "GrossPrice": 35.5,
                "NetDiscountedPrice": 29.83,
                "GrossDiscountedPrice": 35.5,
                "Discount": 0,
                "VAT": 5.67,
                "AffiliateCommission": 0
            },
            "LineItemReference": "0b136a51c517ae2bcba2af651a97f925f1589e98",
            "PurchaseType": "PRODUCT",
            "Code": "LPUJL13OZ6",
            "ExternalReference": "",
            "Quantity": 1,
            "SKU": null,
            "CrossSell": null,
            "Trial": null,
            "AdditionalFields": null,
            "Promotion": null,
            "RecurringOptions": null,
            "SubscriptionStartDate": null,
            "SubscriptionCustomSettings": null,
            "UpSell": null
        }
    ],
    "Promotions": [],
    "AdditionalFields": null,
    "Currency": "eur",
    "NetPrice": 29.83,
    "GrossPrice": 35.5,
    "NetDiscountedPrice": 29.83,
    "GrossDiscountedPrice": 35.5,
    "Discount": 0,
    "VAT": 5.67,
    "AffiliateCommission": 0,
    "CustomParameters": null,
    "Refunds": null
}

For more on how to redirect shoppers to the payment method’ page to finalize the payment, read here.

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