Skip to main content

Update reseller information

Overview

Use this method to update the details for an existing reseller entity in the Avangate platform.

Note: Updating the details of a reseller does not impact the reseller information already attached to existing partner orders. Let's assume that you added Reseller 1 to Order 1, and then update Reseller 1 changing the company name. Reseller 1 for Order 1 will continue to feature the old Reseller 1 information. To swap it for the new details, add the reseller to the order again using setOrderReseller.

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.
Reseller Required (object)

Response

Parameter Type/Description
Result Boolean

Request

<?php

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

$RefNo = 'YOUR_ORDER_REFERENCE_NUMBER';

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'getOrderReseller',
'params' => array($sessionID, $RefNo)
);
// Start by retrieving the order reseller information

$existingReseller = callRPC((Object)$jsonRpcRequest, $host);

$newAddress = 'NEW_ADDRESS';

$existingReseller->Address = $newAddress;
// Update the existing reseller address

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'updateReseller',
'params' => array($sessionID, $existingReseller)
);
var_dump (callRPC((Object)$jsonRpcRequest, $host));
// Send the new address to the reseller object, then display it

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'setOrderReseller',
'params' => array($sessionID, $RefNo, $existingReseller->ResellerCode)
);
var_dump(callRPC((Object)$jsonRpcRequest, $host));
// Re-assign the reseller information back to the order

$jsonRpcRequest = array (
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'getOrderReseller',
'params' => array($sessionID, $RefNo)
);
var_dump(callRPC((Object)$jsonRpcRequest, $host));
// Display the updated reseller information

PricingList Object Structure

Parameters

Parameter Type/Description
PricingListCode String
  The unique identifier of the pricing list.
Name String
  The name of the pricing list.
ProductInfo Complex object
  Complex object containing arrays of SimpleProduct and PriceOptions objects.

 

Retrieve partner information

Overview

Access partner details using the unique codes set to identify them.

Parameters

Parameters Type/Description
sessionID Required (string)
  Session identifier, output by the Login method. An exception will be thrown if the values are incorrect.
partnerCode Required (string)
  The unique partner code.

Response

Parameter Type/Description
Partner Object
  Partner information object.

Request

<?php

require ('PATH_TO_AUTH'); // Authentication example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/JSON-RPC/02Authentication

$partnerCode = 'YOUR_PARTNER_CODE';

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

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

Errors

Error Description

INVALID_PARTNER

Partner code is mandatory.

INVALID_PARTNER

Partner code provided is not associated with an active partner account in the Avangate system.

Shipping method

Overview

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

Search shipping method

Shipping method object

Parameters   Type/Description
Items   Array of objects
      Contains shipping methods objects.
  ShippingMethod

Shipping method object.

Details below.

          Name String
      Shipping method name that you define when creating the method.
          Code String
      System-generated identified for the shipping method.
          TrackingURL String
      URL assigned to the shipping method. Provided to your customers that purchase physical products.
          BasePrice String
      Base fee attached to the shipping method, that will be charged to customers when shipping method is available in cart, regardless of their country, product value or weight.
          Currency String
      Currency in which the base fee is expressed. Example: 'USD'.
           Active Boolean
     

Possible values:

  • TRUE - if shipping method is active.
  • FALSE - if shipping method is inactive.
    Availability Strings
     

Defined where the shipping method is active.

Possible values:

  • ALL - all delivery countries.
  • CUSTOM - selected delivery countries.
  • HOME - only your home country.
    Countries Array of objects
      Countries where the shipping method applies.
                  CountryCode String
                  Two-letters country code.
                  Surcharge String
      Surcharge defined for each country.
    Surcharge Array of objects
      Additional fee assigned to the shipping method.
                 Type String
                 

Order property based on which the surcharge is added.

Possible values:

  • PRICE -  surcharge is based on total order amount.
  • WEIGHT -  surcharged is based on total order weight.
                 From Float
                  Lower interval limit.
                 To Int
      Higher interval limit.
                  Amount Int
      Surcharge defined based on order price/weight.
                 ApplyTo String
     

Possible values:

  • interval - surcharge is added for a given interval. Example: from 1 kg to 4kg.
  • unit - surcharge is added for each additional unit. Example: $5 for each unit over 4 kg.
  Pagination Object
      Pagination filters.
    Page Int
      Number of pages used for displaying the results.
    Limit Int
      Number for limiting the results.
    Count Int
      Total number of results.

 

Add products

Overview

Use addPromotionProducts to add products to an existing promotion.

Parameters

Parameter Type/Description

sessionID

Required (string)

 

Output of the Login method.

promotionCode

Required (string)

 

The code corresponding to the promotion that you want to add products to.

promotionProducts

Required (object)

 

Code

Required (string)

 

 

System generated product code.

 

pricingConfigurationCode

Optional (string)

 

 

System generated pricing configuration code.

 

pricingOptionCodes

Optional (array of strings)

 

 

Pricing option codes that you control.

Response

Parameter Type/Description
PromotionProducts Object

Request

<?php

require ('PATH_TO_AUTH');

// Define a product to add to the promotion
$newProduct1 = new stdClass;
$newProduct1->Code = '';
$newProduct1->PricingConfigurationCode = '';
$newProduct1->PricingOptionCodes = ['',''];

// Define another product to add to the promotion
$newProduct2 = new stdClass;
$newProduct2->Code = '';
$newProduct2->PricingOptionCodes = [''];

$productPromotion = [$newProduct1, $newProduct2];

try {
    $updatedPromotion = $client->addPromotionProducts($promotionCode, $productPromotion);
}

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

var_dump("UpdatedPromotion", $updatedPromotion);

 

Remove product coupon

Overview

Use this method to remove discount coupons applied to products added to cart.

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
coupon Required (String)
  The coupon/voucher code for a promotion impacting a product added to cart.

Response

Parameters Type/Description
result Boolean
  True or false

Request

<?php

require ('PATH_TO_AUTH');  // Authentication example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/JSON-RPC/02Authentication
require ('PATH_TO_SET_PARTNER'); // setPartner example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/JSON-RPC/06Reference/Partner/00Set_partner
require ('PATH_TO_ADD_PRODUCT'); // addProduct example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/JSON-RPC/06Reference/08Place_an_order/00Add_product_to_cart
require ('PATH_TO_ADD_COUPON'); // addCoupon example: https://knowledgecenter.avangate.com/Integration/Channel_Manager_API/JSON-RPC/06Reference/08Place_an_order/06Add_product_coupon

$couponCode = 'COUPON_CODE_TO_REMOVE';

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

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

Errors

Error Description

EMPTY_CART

The shopping cart is empty

INVALID_COUPON_CODE

The coupon code is empty

INVALID_COUPON

The coupon code is not applied to cart

 

Retrieve wire transfer details

Overview

Retrieve the wire payment details that partners need to use to pay for partner invoices.

Requirements

Next, use setProforma to identify a specific partner invoice.

Parameters

Parameter Type/Description
sessionID Required (String)
  Session identifier string, output of the Login method. An exception is thrown if the values are incorrect.
refNo Required (String)
  Order reference number of an order that was marked with WIRE as payment method.

Response

Parameters Type/Description

WirePaymentDetails

Object

 

Details below

 

Amount

Double

 

 

The total costs incurred by the partner for a partner invoice invoice.

 

Currency

String

 

 

Order currency ISO code - ISO 4217.

 

PaymentReference

String

 

 

Transaction identifier.

 

RoutingNumber

String

 

 

Identification number assigned to financial institutions.

 

BankAccounts

Array of objects

 

 

Array of BankAccountDetails objects with the structure detailed below. Can be NULL.

 

 

Beneficiary

String

 

 

 

Payment beneficiary name. Can be NULL.

 

 

BankName

String

 

 

 

Beneficiary bank name. Can be NULL.

 

 

BankCountry

String

 

 

 

Beneficiary bank country. Can be NULL.

 

 

BankCity

String

 

 

 

Beneficiary bank city. Can be NULL.

 

 

BankAddress

String

 

 

 

Beneficiary bank address. Can be NULL.

 

 

BankAccount

String

 

 

 

Beneficiary bank account number. Can be NULL.

 

 

BankAccountIban

String

 

 

 

Beneficiary IBAN. Can be NULL.

 

 

BankAccountSwiftCode

String

 

 

 

Beneficiary SWIFT code. Can be NULL.

 

 

Currency

String

 

 

 

Bank account currency ISO code – ISO 4217. Can be NULL.

Request

<?php

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

$proformaNumber = 'YOUR_PROFORMA_NUMBER';

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

$paymentDetails = new stdClass();
$paymentDetails->Type = 'WIRE';
$paymentDetails->Curency = 'USD';

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

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

$refNo = 'YOUR_ORDER_REFERENCE_NUMBER';

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

 

Errors

Error Description

INVALID_PARTNER

No partner is set.

PAYMENT_PROFORMA

You have to set a partner invoice first.

PAYMENT_NOT_SUPPORTED

The current partner invoice is not set as payable through wire.

 

Retrieve check payment details

Overview

Retrieve the check payment details that customers must use or have used to pay for an order.

Requirements

Parameters

Parameter Type/Description
sessionID Required (String)
  Session identifier string, output of the Login method. An exception is thrown if the values are incorrect.
refNo Required (String)
  Order reference number of an order that was marked with CHECK as payment method.

Response

Parameter Type/Description

CheckPaymentDetails

Object

 

Details below

 

Beneficiary

String

 

 

Payment beneficiary name. Can be NULL.

 

CheckPostalAddress

String

 

 

Beneficiary address. Can be NULL.

 

CheckAccountHolderName

String

 

 

Beneficiary account holder name. Can be NULL.

 

Country

String

 

 

Beneficiary country. Can be NULL.

 

Amount

Double

 

 

Total order costs. Can be NULL.

 

Currency

String

 

 

Order currency ISO code – ISO 4217. Can be NULL.

Request

<?php

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

$proformaNumber = 'YOUR_PROFORMA_NUMBER';

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

$paymentDetails = new stdClass();
$paymentDetails->Type = 'CHECK';
$paymentDetails->Curency = 'USD';

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

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

$refNo = 'YOUR_ORDER_REFERENCE_NUMBER';

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

Errors

Error Description

INVALID_PARTNER

No partner is set.

PAYMENT_PROFORMA

You have to set a partner invoice first.

PAYMENT_NOT_SUPPORTED

The current partner invoice is not set as payable through check.

Retrieve an additional field

Overview

Use the getAdditionalField method to extract information about a specific additional field you set up 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.

fieldCode

Required (string)

 

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

Response

Parameters Type/Description

AdditionalField

Array of objects

Request

<?php
 
require ('PATH_TO_AUTH');

$FieldCode = 'YOUR_FIELD_CODE';
 
try {
    $AdditionalField = $client->getAdditionalField($sessionID, $FieldCode);
}

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

var_dump("AdditionalField", $AdditionalField);


?> 

Google Tag Manager Code Integration for Default Flows – Universal Analytics

Overview

The Google Tag Manager (GTM) is a small piece of JavaScript and non-JavaScript code (a container snippet) that you paste into your pages to configure or enable tags from Google Universal Analytics or third parties. For more information on the Google Tag Manager and how to install it, click here.

   This documentation refers to Google Universal Analytics, which is a deprecated version that will be sunset starting July 1st 2023 for free Universal Analytics properties and starting July 1st 2024 for 360 Universal Analytics properties. We strongly recommend you to migrate to Google Analytics 4 as soon as possible.

Setting the Google Tag Manager (GTM)

To implement Google Tag Manager on your website, follow these steps:

  1. Log into your 2Checkout Merchant Control Panel.
  2. Navigate to Setup → Interface templates.
  3. Click to Edit the template that needs to be tracked. An example is shown in the image below:

web analytics in Merchant Control Panel_4.png

4. In the Head Information area → Meta & CSS, paste the Google Tag Manager code for your account at the end of the existing code in the section. An example of the Google Tag Manager code is shown below:

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

Example of GTM code for the <body> tag:

<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

The GTM code needs to be placed on your own website as well – one snippet of code in the <head> and the other in the <body> tag, if this step has not already been done previously. See the image below for a screenshot of an example code that needs to be added to your own website. More information can be found on this page: https://developers.google.com/tag-manager/quickstart.

Install GTM

Sending MyOrder Data to Google Universal Analytics

By default, the myOrder object is displayed only for orders with payments authorized instantly (this includes usually credit cards and PayPal), after the payment is complete (transaction needs to be authorized successfully). To have the myOrder object available for all placed orders regardless of the payment status (to send revenue to Google Universal Analytics based on myOrder.TotalPrice, to more offline payment methods orders), follow the steps below:

  1. Log in to your Merchant Control Panel account.
  2. Go to Setup → Ordering Options.
  3. Scroll down to the After sale message area and check the checkbox for the Show message for all placed orders option.

web analytics in Merchant Control Panel_2.png

3. Click Save settings at the bottom of the page.

A JavaScript object called myOrder is available on the ‘Thank you’ page providing information about the purchased products including ID, quantity, name, price, etc.

To see information about orders in Google Universal Analytics, follow these steps:

  1. Log in to your Merchant Control Panel account.
  2. Navigate to Setup → Ordering Options and click on the Analytics tab.

web analytics in Merchant Control Panel_1.png

3. Scroll down to the Tracking script section and add a code snippet (for example add <div></div>).

4. Apply the code to all languages or to the languages for which you want your template to be tracked.

5. Click Save at the bottom of the page.

web analytics in Merchant Control Panel_3.png

Google Tag Manager Configuration

How to configure Google Tag Manager for your own website

1. The Google Analytics - Universal Analytics tag for your own website (ex. www.mywebsite.com) should look as shown in the below image.

GAtag.png

2. This Google Universal Analytics tag for your own website must have Page View selected as Track Type.

tagconfig.png

The variable for the Google Universal Analytics tag should be configured as follows: in the Tracking ID section in the Google Universal Analytics Settings area, add the tracking ID of your own Google Analytics property.

If you don’t know the Google Universal Analytics property ID, you can find it here.

GA settings.png

If you use your own custom domain for the shopping cart, then proceed to step 4.

If you use the 2checkout shopping cart (secure.2checkout.com), further implementation for the cross-domain tracking is needed. In this case, you (merchant) need to proceed to step 2 to count the visitors that first go to your website, and then to secure.2checkout.com as the same visitors in Google Analytics.

3. If you need further implementation for the cross-domain tracking, follow the additional setup needed for the Google Universal Analytics variable. In the More Settings section, under Fields to set, click Add Field. You will see two fields that need to be filled in.  In the first field, enter “cookieDomain” as Field Name, and “auto” as Value. In the second field, enter “allowLinker” as Field Name, and “true” as value. In the section Cross Domain Tracking, in the field Auto Link Domains, enter “secure.2checkout.com” and in the Use Hash as Delimiter field enter “False”, and in the Decorate Forms enter “True”.

adfield.png

4. The triggering for this tag is All Pages.

triggering.png

Implementing Google Universal Analytics with Google Tag Manager for 2Checkout

1. Besides the Google Universal Analytics tag for your own website, create a Google Universal Analytics tag for 2Checkout, as shown in the image below.

tags.png

2. Name this new tag “2Checkout Google Analytics” to differentiate it from your own Google Universal Analytics website tag. Select Event as Track Type and 2Checkout as Category. Select Google Analytics - Universal Analytics Settings and click Enable overriding settings in this tag.

2checkout GA settings.png

3. Under More Settings, select True for Ecommerce and click Use Data Layer. As Tag Firing Options select Once per event, as shown in the below image.

selectUsedataLayer.png

4. In the Trigger Configuration area, create a trigger named 2Checkout Event, with a Custom Event trigger type. Write 2checkout event in the Event name field (this is case sensitive for Google Universal Analytics) and select All Custom Events for when to fire the trigger, as indicated in the following image.2checkout events.png

5. The last step is to Save and Publish all the changes made.

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