Skip to main content

Countries report

Overview

The report centralizes sales statistics based on shopper country. Use this report to identify countries bringing in the highest revenue. Report data shows all completed orders, including refunds, and originates from multiple sales channels: eStore, Affiliates Network, Network cross-selling and Partners. The report uses exchange rates valid on the day you generate it.

Availability

All 2Checkout accounts.

ConvertPlus events

Overview

This page lists all the events supported by the ConvertPlus shopping cart, their triggers, payloads, eCommerce events, or custom events they trigger, and the effects they produce for each supported web metrics/tracking solution.

Currently, we support the following Web Metrics solutions:

  • DTM - Dynamic Tag Manager (from Adobe, used for internal tracking)
  • UA - Google Universal Analytics
  • GA4 - Google Analytics 4 (recommended)
  • GTM - Google Tag Manager (with and without GA and/or GA4) 
  1. The custom cartUpdated event is only supported by DTM & GTM.
  2. The payload section represents the data required by the shopping.cart.tracker application from the data-set sent from the ConvertPlus shopping cart.

Availability

Available to all 2Checkout accounts.

Supported ConvertPlus Events

LOAD_CART (load-cart)

Triggered by:

  • page refresh (while on checkout page)
  • loading the cart

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • Google Universal Analytics begin_checkout event 
  • Google Tag Manager checkout event
  • Dynamic Tag Manager checkout event
  • Google Analytics 4 begin_checkout event 
  • Google Tag Manager (GA4) begin_checkout event
  • cartUpdated DISCOUNT_COUPON 
  • cartUpdated COMPANY_NAME 
  • cartUpdated ORDER_EXT_REF 
  • cartUpdated CUSTOMER_EXT_REF 
  • cartUpdated TEMPLATE_LAST_MODIFIED_DATE 
  • cartUpdated TEMPLATE_CREATION_DATE 
  • cartUpdated PROFESSIONAL_SERVICES 
  • cartUpdated PAGE_STYLE_NAME 
  • cartUpdated ADDITIONAL_HIDDEN_FIELDS 
  • cartUpdated PAGE_NAME
  • cartUpdated PAGE_THEME 
  • cartUpdated VENDOR_CODE 
  • cartUpdated ONE_STEP_CART 
  • cartUpdated SHORT_FORM 
  • cartUpdated PURCHASE_COMPLETE 
  • cartUpdated TEST_ORDER 
  • cartUpdated PRODUCT_SOURCE 
  • cartUpdated CART_LOCK 
  • cartUpdated DISCOUNT_COUPON_STATUS 
  • cartUpdated AUTO_RENEWAL 
  • cartUpdated PURCHASE_TYPE 
  • cartUpdated LANGUAGE 
  • cartUpdated BILLING_COUNTRY 
  • cartUpdated VISITOR_COUNTRY 
  • cartUpdated BILLING_CURRENCY 

Example 

{
  "page":{
    "name":"checkout"
  },
  "customization":{
    "templateCreationDate":null,
    "templateLastModifiedDate":null,
    "pageStyleName":null,
    "professionalServices":"no"
  },
  "theme":"default",
  "isRecurring":false,
  "recurringIsEnabled":false,
  "order":{
    "cartId":"5ef483ce33df67.19210359",
    "refNo":null,
    "date":null,
    "language":"EN",
    "country":"",
    "currency":"CAD",
    "hasPromotions":false,
    "hasFulfillment":false,
    "hasDynamicProducts":false,
    "hasPhysicalProducts":false,
    "isFulfillmentFinalized":null,
    "errors":{
      "ORDER_BILLING_DETAILS_COUNTRY_EMPTY":"The Country cannot be empty"
    },
    "completed":false,
    "shipping":0,
    "shippingVAT":0,
    "externalRef":null,
    "externalCustomerRef":null,
    "orderAdditionalFields":[

    ],
    "items":[
      {
        "code":"P_AV",
        "quantity":4,
        "optionsCodes":[

        ],
        "subscription":null,
        "isLocked":false,
        "recurrence":[

        ],
        "externalRef":"",
        "product":{
          "id":7628801,
          "code":"P_AV",
          "type":"REGULAR",
          "isDynamic":false,
          "isTangible":false,
          "name":"Panda_Antivirus",
          "version":"1.1.1",
          "minAllowedQuantity":1,
          "maxAllowedQuantity":99999,
          "maxSupportedQuantity":99999,
          "image":null,
          "hasPromotions":true,
          "hasAutoRenewal":false,
          "hasOptions":false,
          "hasFulfillment":false,
          "options":[

          ],
          "price":{
            "net":513.65,
            "gross":513.65,
            "vat":0,
            "VATPercent":0,
            "discount":0,
            "netDiscounted":513.65,
            "grossDiscounted":513.65,
            "affiliateCommission":0,
            "unitNet":128.41,
            "unitGross":128.41,
            "unitVAT":0,
            "unitDiscount":0,
            "unitNetDiscounted":128.41,
            "unitGrossDiscounted":128.41,
            "unitAffiliateCommission":0,
            "currency":"CAD",
            "handlingFeeGross":0,
            "handlingFeeNet":0,
            "guid":"55a771f1-e60d-b496-d88c-a818929f1743"
          },
          "additionalFields":[
            {
              "code":"product_checkbox_identifier",
              "name":"product_checkbox_text",
              "enabled":true,
              "required":false,
              "type":"CHECKBOX",
              "validationRule":"",
              "urlParameter":"ADDITIONAL_product_checkbox_identifier[7628801]",
              "value":false,
              "guid":"1b5ae6b9-ce5c-6edd-0f89-f3f9dfd2569a"
            },
            {
              "code":"product_textbox_identifier",
              "name":"product_textbox_text",
              "enabled":true,
              "required":false,
              "type":"TEXT",
              "validationRule":"/^.*$/",
              "urlParameter":"ADDITIONAL_product_textbox_identifier[7628801]",
              "value":null,
              "guid":"9d220f1f-67b3-220f-1c75-3484d6f929f8"
            },
            {
              "code":"product_listbox_identifier",
              "name":"product_listbox_text",
              "enabled":true,
              "required":false,
              "type":"LISTBOX",
              "validationRule":"",
              "urlParameter":"ADDITIONAL_product_listbox_identifier[7628801]",
              "value":"",
              "values":[
                "first_value",
                "some_other_value",
                "not_the_first_values"
              ],
              "guid":"27204065-b8b6-8168-5b60-0d9c77140d86"
            },
            {
              "code":"product_hidden_identifier",
              "name":"product_hidden_text",
              "enabled":true,
              "required":false,
              "type":"HIDDEN",
              "validationRule":"",
              "urlParameter":"ADDITIONAL_product_hidden_identifier[7628801]",
              "value":null,
              "guid":"9123ef21-2679-34cf-07a4-f479cf26832d"
            }
          ],
          "description":{
            "code":"P_AV-description",
            "short":"",
            "long":"",
            "systemRequirements":"",
            "guid":"49744364-45b3-8eab-5b07-a324697bc901"
          },
          "returnMethod":{
            "type":"redirect",
            "url":null,
            "guid":"e7d21c08-af22-10be-4a2a-1f3f56d35686"
          },
          "productGroup": {
            "code": "RANDOMCODE",
            "description": "Default products group",
            "name": "General"
          },
          "links":[
            "options",
            "price",
            "additionalFields",
            "description",
            "returnMethod",
            "productGroup"
          ],
          "guid":"65999b0f-f4b1-86f9-e698-b99ac4da0d47"
        },
        "fulfillment":{
          "downloadFile":null,
          "deliveryDescription":"",
          "codesDescription":"",
          "codes":[

          ],
          "guid":"b1367015-2498-6f82-aebe-7aab7164f50e"
        },
        "links":[
          "product",
          "fulfillment"
        ],
        "guid":"37308c62-2bb9-3648-41ff-119caecf0deb"
      }
    ],
    "billing":{
      "name":"",
      "email":null,
      "country":"",
      "address":null,
      "city":null,
      "zip":null,
      "state":"",
      "company":null,
      "fiscalCode":null,
      "taxOffice":"",
      "phone":null,
      "sameDelivery":true,
      "guid":"6054f537-619b-079b-268e-dd2ca326a1fc"
    },
    "delivery":{
      "method":null,
      "name":"",
      "email":null,
      "country":"",
      "address":null,
      "city":null,
      "zip":null,
      "state":"",
      "phone":null,
      "guid":"3eb0e516-fe52-2e8f-2ac3-9ef93ae73c6a"
    },
    "price":{
      "currency":"CAD",
      "net":513.65,
      "gross":513.65,
      "netDiscounted":513.65,
      "grossDiscounted":513.65,
      "taxValue":0,
      "taxLabel":"TAX/VAT",
      "taxPercentage":0,
      "guid":"234d7a00-315b-8444-afc7-cb46b9ac302a"
    },
    "payment":{
      "method":"CC",
      "type":"visa",
      "businessCompany":"AVANGATEBV",
      "retryPaymentMethods":null,
      "details":{
        "cc":{
          "lastDigits":null,
          "redirectUrl":null
        },
        "paypal":{
          "hasToken":false,
          "hadToken":null,
          "redirectUrl":null
        }
      },
      "guid":"05cc2ef0-1819-825f-472f-639cccfb2227",
      "cc":{
        "lastDigits":null,
        "redirectUrl":null
      },
      "paypal":{
        "hasToken":false,
        "hadToken":null,
        "redirectUrl":null
      },
      "wire":{

      },
      "ideal":{

      },
      "boleto":{

      }
    },
    "links":[
      "items",
      "billing",
      "delivery",
      "price",
      "payment"
    ],
    "guid":"81021f65-17b5-5277-387c-6f730cc59bd8",
    "allowsPromotion":true,
    "allowsAutoRenewal":false,
    "isPlaced":false,
    "isCompleted":false,
    "failReason":null,
    "hasOrderPromotion": false,
    "promotion": {
      "Code":  "PROMO-CODE",
      "Name": "promo name",
      "Description":  "promo description",
      "Coupon":  "PROMO-COUPON",
      "DiscountLabel": "12%",
      "Enabled":  true,
      "Type": "GLOBAL",
      "Translations":  [],
      "Products": [
        "PV_AV"
      ]
    }
  },
  "merchant":{
    "code":"QWE",
    "name":"QWE",
    "homepage":"https://kakulatoare.ro",
    "logo":"",
    "recurringEnabled":true,
    "recurringValue":false,
    "tracking":"simple",
    "isGDPR":true,
    "hotlineNumbers":[
      {
        "code":"INTERNATIONAL",
        "name":"International",
        "phones":{
          "Israel":[
            "+972 02 372 4346"
          ],
          "USA/Canada":[
            "+1 (650) 963-5701"
          ],
          "International":[
            "+31 88 0000008"
          ]
        },
        "guid":"6f2d2129-1d79-1bf5-75b3-ac07390971df"
      }
    ],
    "returnMethod":{
      "type":"redirect",
      "url":null,
      "guid":"07672d6e-bf45-92cd-c9ee-42c6ca4114d5"
    },
    "trackingCodes":[
      {
        "code":"UA-144834505-1",
        "type":"GA",
        "guid":"7785dfbf-d5a8-9900-34db-58bad58c8895"
      },
      {
        "code":"UA-144834505-1",
        "type":"GA",
        "guid":"89bf2f71-d4ea-a411-6706-dc936f15ce96"
      }
    ],
    "links":[
      "hotlineNumbers",
      "returnMethod",
      "trackingCodes"
    ],
    "guid":"5a0d2c3b-b1db-fa11-6e15-7d6fb2548f8a"
  },
  "orderAdditionalHiddenFields":[
    {
      "code":"order_hidden_identifier",
      "name":"order_hidden_text",
      "enabled":true,
      "required":false,
      "type":"HIDDEN",
      "validationRule":"",
      "urlParameter":null,
      "value":null,
      "guid":"2beb2978-99e8-ce91-699e-e5ac2893260a"
    }
  ],
  "cartLock":null
}

LOAD_PAGE (load-page) 

Triggered by:

  • page refresh (while not on checkout page)
  • redirect

Triggers

For more details on all the triggers below, check out the eCommerce events page.

Google Universal Analytics and Google Analytics 4 non-interaction event (if the loaded page is the retry page).

  • cartUpdated DISCOUNT_COUPON 
  • cartUpdated COMPANY_NAME 
  • cartUpdated ORDER_EXT_REF 
  • cartUpdated CUSTOMER_EXT_REF 
  • cartUpdated TEMPLATE_LAST_MODIFIED_DATE 
  • cartUpdated TEMPLATE_CREATION_DATE 
  • cartUpdated PROFESSIONAL_SERVICES 
  • cartUpdated PAGE_STYLE_NAME 
  • cartUpdated ADDITIONAL_HIDDEN_FIELDS 
  • cartUpdated PAGE_NAME
  • cartUpdated PAGE_THEME 
  • cartUpdated VENDOR_CODE 
  • cartUpdated ONE_STEP_CART 
  • cartUpdated SHORT_FORM 
  • cartUpdated PURCHASE_COMPLETE 
  • cartUpdated TEST_ORDER 
  • cartUpdated PRODUCT_SOURCE 
  • cartUpdated CART_LOCK 
  • cartUpdated DISCOUNT_COUPON_STATUS 
  • cartUpdated AUTO_RENEWAL 
  • cartUpdated PURCHASE_TYPE 
  • cartUpdated LANGUAGE 
  • cartUpdated BILLING_COUNTRY 
  • cartUpdated VISITOR_COUNTRY 
  • cartUpdated BILLING_CURRENCY 

Example

{
   "page":{
      "name":""
   },
   "order":{
      "currency":"",
      "language":"",
      "items":[
         {
            "product":{
               "id":"",
               "name":"",
               "type":"",
               "price":{
                  "netDiscounted":""
               },
               "isTangible":true,
               "isDynamic":false
            },
            "promotion":{
               "coupon":""
            },
            "recurrence":{
               "CycleUnit":1,
               "CycleLength":5,
               "CycleAmount":10
            },
            "quantity":"",
            "externalRef": ""
         }
      ],
      "billing":{
         "company":"company_name"
      },
      "externalRef":"",
      "externalCustomerRef":"",
      "refNo":"",
      "hasOrderPromotion": false,
      "promotion": {
        "Code":  "PROMO-CODE",
        "Name": "promo name",
        "Description":  "promo description",
        "Coupon":  "PROMO-COUPON",
        "DiscountLabel": "12%",
        "Enabled":  true,
        "Type": "GLOBAL",
        "Translations":  [],
        "Products": [
          "PV_AV"
        ]
      }
   },
   "merchant":"merchant_code",
   "theme":"default",
   "cartLock":true,
   "customization":{
      "templateLastModifiedDate":"",
      "templateCreationDate":"",
      "professionalServices":"",
      "pageStyleName":""
   },
   "orderAdditionalHiddenFields":[
      {
         "type":"",
         "enabled":"",
         "name":"",
         "value":""
      }
   ]
}

PLACE_ORDER (place-order:success)

Triggered by:

  • placing a successful order

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • Google Universal Analytics purchase event
  • Google Tag Manager purchase event
  • Dynamic Tag Manager purchase event
  • Google Analytics 4 purchase event 
  • Google Tag Manager (GA4) purchase event 
  • cartUpdated PAGE_NAME
  • cartUpdated PURCHASE_COMPLETE 
  • cartUpdated LANGUAGE 

Example

{
   "order":{
      "refNo":"",
      "shipping":"",
      "purchaseFlow":"",
      "language":"",
      "returnMethod":{
         "url":"",
         "type":""
      },
      "coupon":{
         "code":""
      },
      "price":{
         "netDiscounted":"",
         "taxValue": "",
         "currency": ""
      },
      "items":[
         {
            "product":{
               "id":"",
               "name":"",
               "type":"",
               "price":{
                  "netDiscounted":""
               },
               "isTangible":true,
               "isDynamic":false
            },
            "promotion":{
               "coupon":""
            },
            "recurrence":{
               "CycleUnit":1,
               "CycleLength":5,
               "CycleAmount":10
            },
            "quantity": 1,
            "externalRef": ""
         }
      ],
      "hasOrderPromotion": false,
      "promotion": {
        "Code":  "PROMO-CODE",
        "Name": "promo name",
        "Description":  "promo description",
        "Coupon":  "PROMO-COUPON",
        "DiscountLabel": "12%",
        "Enabled":  true,
        "Type": "GLOBAL",
        "Translations":  [],
        "Products": [
          "PV_AV"
        ]
      }
   }
}

SET_ECOMMERCE (set-ecommerce)

Triggered by:

  • changing currency
  • changing the cart’s total amount
  • changing product options

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • Google Tag Manager checkout event 
  • Dynamic Tag Manager checkout event
  • Google Tag Manager (GA4) begin_checkout event
  • cartUpdated time

Example

{
   "cartId":"5ef483ce33df67.19210359",
   "refNo":null,
   "date":null,
   "language":"EN",
   "country":"",
   "currency":"CAD",
   "hasPromotions":false,
   "hasFulfillment":false,
   "hasDynamicProducts":false,
   "hasPhysicalProducts":false,
   "isFulfillmentFinalized":null,
   "errors":{
      "ERROR_CODE":"ERROR_MESSAGE"
   },
   "completed":false,
   "shipping":0,
   "shippingVAT":0,
   "externalRef":null,
   "externalCustomerRef":null,
   "orderAdditionalFields":[

   ],
   "items":[
      {
         "code":"P_AV",
         "quantity":4,
         "optionsCodes":[

         ],
         "subscription":null,
         "isLocked":false,
         "recurrence":[

         ],
         "externalRef":"",
         "product":{
            "id":7628801,
            "code":"P_AV",
            "type":"REGULAR",
            "isDynamic":false,
            "isTangible":false,
            "name":"Panda_Antivirus",
            "version":"1.1.1",
            "minAllowedQuantity":1,
            "maxAllowedQuantity":99999,
            "maxSupportedQuantity":99999,
            "image":null,
            "hasPromotions":true,
            "hasAutoRenewal":false,
            "hasOptions":false,
            "hasFulfillment":false,
            "options":[

            ],
            "price":{
               "net":513.65,
               "gross":513.65,
               "vat":0,
               "VATPercent":0,
               "discount":0,
               "netDiscounted":513.65,
               "grossDiscounted":513.65,
               "affiliateCommission":0,
               "unitNet":128.41,
               "unitGross":128.41,
               "unitVAT":0,
               "unitDiscount":0,
               "unitNetDiscounted":128.41,
               "unitGrossDiscounted":128.41,
               "unitAffiliateCommission":0,
               "currency":"CAD",
               "handlingFeeGross":0,
               "handlingFeeNet":0,
               "guid":"da22c2a0-900f-f71b-e2ad-20af47d011f7"
            },
            "additionalFields":[
               {
                  "code":"product_checkbox_identifier",
                  "name":"product_checkbox_text",
                  "enabled":true,
                  "required":false,
                  "type":"CHECKBOX",
                  "validationRule":"",
                  "urlParameter":"ADDITIONAL_product_checkbox_identifier[7628801]",
                  "value":false,
                  "guid":"07d2bfb2-919d-a798-c5a8-21e23cc4365f"
               }
            ],
            "description":{
               "code":"P_AV-description",
               "short":"",
               "long":"",
               "systemRequirements":"",
               "guid":"03ea7943-3666-096e-f864-1881dab24f91"
            },
            "returnMethod":{
               "type":"redirect",
               "url":null,
               "guid":"09da5429-2227-7c60-0cd9-feb92015100b"
            },
            "productGroup": {
              "code": "RANDOMCODE",
              "description": "Default products group",
              "name": "General"
            },
            "links":[
               "options",
               "price",
               "additionalFields",
               "description",
               "returnMethod",
               "productGroup"
            ],
            "guid":"d3e31215-323c-8e09-8e03-9610d77ed72a"
         },
         "fulfillment":{
            "downloadFile":null,
            "deliveryDescription":"",
            "codesDescription":"",
            "codes":[

            ],
            "guid":"bcca5c6c-9992-92a3-3f97-30ccdbe0e7c9"
         },
         "links":[
            "product",
            "fulfillment"
         ],
         "guid":"ee820b8a-a8ff-5ad0-a6a4-b1b715e862c6"
      }
   ],
   "billing":{
      "name":"",
      "email":null,
      "country":"",
      "address":null,
      "city":null,
      "zip":null,
      "state":"",
      "company":null,
      "fiscalCode":null,
      "taxOffice":"",
      "phone":null,
      "sameDelivery":true,
      "guid":"c92ad3bc-a899-6e02-068a-74940422f69b"
   },
   "delivery":{
      "method":null,
      "name":"",
      "email":null,
      "country":"",
      "address":null,
      "city":null,
      "zip":null,
      "state":"",
      "phone":null,
      "guid":"4f3e22ba-1249-8af5-a3f6-ee556d164575"
   },
   "price":{
      "currency":"CAD",
      "net":513.65,
      "gross":513.65,
      "netDiscounted":513.65,
      "grossDiscounted":513.65,
      "taxValue":0,
      "taxLabel":"TAX/VAT",
      "taxPercentage":0,
      "guid":"e44835a4-bf4e-4f48-8c42-54f26b027401"
   },
   "payment":{
      "method":"CC",
      "type":"visa",
      "businessCompany":"AVANGATEBV",
      "retryPaymentMethods":null,
      "details":{
         "cc":{
            "lastDigits":null,
            "redirectUrl":null
         },
         "paypal":{
            "hasToken":false,
            "hadToken":null,
            "redirectUrl":null
         }
      },
      "guid":"a9ba52cf-90c5-0431-c411-e14cee2d20b8",
      "cc":{
         "lastDigits":null,
         "redirectUrl":null
      },
      "paypal":{
         "hasToken":false,
         "hadToken":null,
         "redirectUrl":null
      },
      "wire":{

      },
      "ideal":{

      },
      "boleto":{

      }
   },
   "links":[
      "items",
      "billing",
      "delivery",
      "price",
      "payment"
   ],
   "guid":"8f5cc3ab-982a-091d-0ee6-570bf1c303a2",
   "allowsPromotion":true,
   "allowsAutoRenewal":false,
   "isPlaced":false,
   "isCompleted":false,
   "failReason":null,
   "hasOrderPromotion": false,
   "promotion": {
     "Code":  "PROMO-CODE",
     "Name": "promo name",
     "Description":  "promo description",
     "Coupon":  "PROMO-COUPON",
     "DiscountLabel": "12%",
     "Enabled":  true,
     "Type": "GLOBAL",
     "Translations":  [],
     "Products": [
       "PV_AV"
     ]
  }
}

SET_ERRORS (set-errors)

Triggered by:

  • any validation error

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated FORM_ERROR 

Example

[
  "field_name_1",
  "field_name_2",
  "field_name_3"
]

UPDATE_COUNTRY (change:country)

Triggered by:

  • changing the country

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated BILLING_COUNTRY 
  • cartUpdated VISITOR_COUNTRY 

 Example

{
  "code": "RO"
}

UPDATE_CURRENCY (change:currency)

Triggered by:

  • changing the currency

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated BILLING_CURRENCY

Example

{
  "code": "RON"
}

UPDATE_LANGUAGE (change:language)

Triggered by:

  • changing the language

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated LANGUAGE

Example

{
  "code": "RO"
}

UPDATE_COMPANY_NAME (change:companyName)

Triggered by:

  • changing the company name while on the company flow

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated COMPANY_NAME

Example

"company name"

UPDATE_COUPON (apply-coupon)

Triggered by:

  • adding a coupon

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated DISCOUNT_COUPON

Example

"coupon_code"

UPDATE_COUPON_STATUS (set-coupon-status)

Triggered by:

  • loading the cart
  • adding a coupon

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated DISCOUNT_COUPON_STATUS

 Example

{
  "status": "Available"
}

UPDATE_PAYMENT_METHOD (change:paymentMethod)

Triggered by:

  • changing the payment method

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated PAYMENT_METHOD
  • cartUpdated PAYMENT_METHOD_TYPE

Example

{
  "paymentType": {
    "code": "wire"
  }
  "paymentMethod": {
    "isOffline": true
  }
}

UPDATE_PAYMENT_CATEGORY (change:paymentMethod)

Triggered by:

  • changing the payment method

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated PAYMENT_METHOD

 Example

Wire

UPDATE_RENEWAL_STATUS (set-renewal-status)

Triggered by:

  • loading the cart
  • enabling auto-renewal

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated AUTO_RENEWAL

Example

{
  "state"  : true,
  "enabled": true
}

UPDATE_CART_STEP (change:cartStep)

Triggered by:

  • changing sections in the inline cart

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated CART_STEP

Example

"STEP_BILLING"

UPDATE_ADDITIONAL_FIELD_COUNT (additional-fields-count-changed)

Triggered by:

  • loading the cart

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated ADDITIONAL_FIELDS_COUNT

Example

8

UPDATE_SOURCE (source-loaded)

Triggered by:

  • loading the cart

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated SOURCE

Example

"source value"

UPDATE_PURCHASE_FLOW (set-purchase-flow)

Triggered by:

  • changing the purchase flow

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated PURCHASE_FLOW

 Example

"company"

ADD_ITEM (add-item)

Triggered by:

  • changing product options

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • custom custom cartUpdated event
  • Google Tag Manager addToCart event
  • Google Analytics 4 add_to_cart event 
  • Google Tag Manager (GA4) add_to_cart event 

 Example

{
   "product":{
      "id":123,
      "name":"",
      "isTangible":true,
      "isDynamic":true,
      "type":"",
      "price":{
         "netDiscounted": 100,
         "currency":"EUR"
      }
   },
   "recurrence":{
      "CycleUnit":1,
      "CycleLength":2,
      "CycleAmount":3
   },
   "promotion":{
      "coupon":"coupon_code"
   },
   "quantity":1,
   "externalRef": ""
}

UPDATE_ITEM (update-item)

Triggered by:

  • changing product quantity

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated QUANTITY_CHANGED

Example

{
  "quantity": 1
}

DELETE_ITEM (delete-item)

Triggered by:

  • remove item from cart

Notes:

  • the payload consists of two main keys, the currencyCode, and the entirety of the item object
  • the hasOrderPromotion & orderPromotion keys are only present if there is a valid order promotion present

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • Google Universal Analytics remove_from_cart event 
  • Google Tag manager removeFromCart event 
  • Dynamic Tag manager removeFromCart event
  • Google Analytics 4 remove_from_cart event 
  • Google Tag Manager (GA4) remove_from_cart event 

Example

{
  "currencyCode"     : "USD",
  "hasOrderPromotion": false,
  "orderPromotion"   : {
    "Code"         : "PROMO-CODE",
    "Name"         : "promo name",
    "Description"  : "promo description",
    "Coupon"       : "PROMO-COUPON",
    "DiscountLabel": "12%",
    "Enabled"      : true,
    "Type"         : "GLOBAL",
    "Translations" : [],
    "Products"     : [
      "PV_AV"
    ]
  },
  "item"             : {
    "code"        : "P_AV",
    "quantity"    : 1,
    "optionsCodes": [],
    "subscription": null,
    "isLocked"    : false,
    "recurrence"  : [],
    "externalRef" : "",
    "product"     : {
      "id"                  : 7628801,
      "code"                : "P_AV",
      "type"                : "REGULAR",
      "isDynamic"           : false,
      "isTangible"          : false,
      "name"                : "Panda_Antivirus",
      "version"             : "1.1.1",
      "minAllowedQuantity"  : 1,
      "maxAllowedQuantity"  : 99999,
      "maxSupportedQuantity": 99999,
      "image"               : null,
      "hasPromotions"       : true,
      "hasAutoRenewal"      : false,
      "hasOptions"          : false,
      "hasFulfillment"      : false,
      "options"             : [],
      "price"               : {
        "net"                    : 100,
        "gross"                  : 100,
        "vat"                    : 0,
        "VATPercent"             : 0,
        "discount"               : 0,
        "netDiscounted"          : 100,
        "grossDiscounted"        : 100,
        "affiliateCommission"    : 0,
        "unitNet"                : 100,
        "unitGross"              : 100,
        "unitVAT"                : 0,
        "unitDiscount"           : 0,
        "unitNetDiscounted"      : 100,
        "unitGrossDiscounted"    : 100,
        "unitAffiliateCommission": 0,
        "currency"               : "USD",
        "handlingFeeGross"       : 0,
        "handlingFeeNet"         : 0,
        "guid"                   : "71b503f4-e0fd-48ff-6ff7-3f7a27801991"
      },
      "additionalFields"    : [
        {
          "code"          : "product_checkbox_identifier",
          "name"          : "product_checkbox_text",
          "enabled"       : true,
          "required"      : false,
          "type"          : "CHECKBOX",
          "validationRule": "",
          "urlParameter"  : "ADDITIONAL_product_checkbox_identifier[7628801]",
          "value"         : false,
          "guid"          : "37dc7383-dc03-9049-52cf-9792cb0e0093"
        },
        {
          "code"          : "product_textbox_identifier",
          "name"          : "product_textbox_text",
          "enabled"       : true,
          "required"      : false,
          "type"          : "TEXT",
          "validationRule": "/^.*$/",
          "urlParameter"  : "ADDITIONAL_product_textbox_identifier[7628801]",
          "value"         : null,
          "guid"          : "eedaede2-6e65-f78a-d918-3945960d5f7e"
        },
        {
          "code"          : "product_listbox_identifier",
          "name"          : "product_listbox_text",
          "enabled"       : true,
          "required"      : false,
          "type"          : "LISTBOX",
          "validationRule": "",
          "urlParameter"  : "ADDITIONAL_product_listbox_identifier[7628801]",
          "value"         : "",
          "values"        : [
            "first_value",
            "some_other_value",
            "not_the_first_values"
          ],
          "guid"          : "7e84db3e-52dc-fe2b-837f-2e2e537dbefc"
        },
        {
          "code"          : "product_hidden_identifier",
          "name"          : "product_hidden_text",
          "enabled"       : true,
          "required"      : false,
          "type"          : "HIDDEN",
          "validationRule": "",
          "urlParameter"  : "ADDITIONAL_product_hidden_identifier[7628801]",
          "value"         : null,
          "guid"          : "f6d1f347-1eac-58aa-a0d2-74540c99d768"
        }
      ],
      "description"         : {
        "code"              : "P_AV-description",
        "short"             : "",
        "long"              : "",
        "systemRequirements": "",
        "guid"              : "86579d72-2ce1-a1d1-e981-5d978d059940"
      },
      "returnMethod"        : {
        "type": "redirect",
        "url" : null,
        "guid": "1d8a1ab9-31c2-8eaa-5657-cfa540bc0484"
      },
      "productGroup"        : {
        "code"       : "RANDOMCODE",
        "description": "Default products group",
        "name"       : "General"
      },
      "links"               : [
        "options",
        "price",
        "additionalFields",
        "description",
        "returnMethod",
        "productGroup"
      ],
      "guid"                : "83400c11-9cab-c454-ed4e-5038717b3d49"
    },
    "fulfillment" : {
      "downloadFile"       : null,
      "deliveryDescription": "",
      "codesDescription"   : "",
      "codes"              : [],
      "guid"               : "b08e4024-954f-9fc2-9999-4c9eb5ad6265"
    },
    "links"       : [
      "product",
      "fulfillment"
    ],
    "guid"        : "60151ce2-14ee-4515-c58a-a9405053887a"
  }
}

LOAD_CROSS_SELL (load-cross-sell)

Triggered by: 

  • loading the cross-sell carousel on page 

 Triggers

  • Google Tag Manager productImpression event
  • Dynamic Tag Manager productImpression event 
  • Google Analytics 4 view_item_list event 
  • Google Tag Manager (GA4) view_item_list event 

UPDATE_HAS_INSTALLMENTS (set-has-cc-installments)

Triggered by:

  • page refresh (while on checkout page & a country  that supports installments is selected)
  • loading the cart (while a country that supports installments is selected)
  • changing the installment options
  • changing payment methods
  • changing country

Triggers

For more details on all the triggers below, check out the eCommerce events page.

  • cartUpdated CREDIT_CARD_INSTALLMENTS 

Example

"false"

 

Order statistics

The Order statistics report aggregates data for new purchases, renewals and upgrades, based on the order placing date. The aggregated data includes new purchases, renewals and upgrades. Refunded orders are counted as new purchases.

Transactions completed in other currencies than the ones supported are converted to the default currency set per product.

You can configure the report to show either the total or the average number of finished orders in the selected time interval.

API Responses

Overview

This section contains the objects returned as API responses, based on your requests to retrieve information on orders, products, subscriptions, promotions, and others.

 

 

Integrate 3dcart

Availability

3dcart integration is available only for 2Checkout accounts that handle their own tax and invoice management (2Sell and 2Subscribe accounts). 

3dcart Settings:

Perform the below set of instructions in your 3dcart account to integrate it with 2Checkout.

  1. Sign in to your 3dcart admin
  2. Click Payment Methods
  3. Check Active
  4. Enter your Store ID (2Checkout Account Number)
  5. Click Save

2Checkout Settings:

Follow the below instructions in your 2Checkout Control Panel to finalize the 3dcart integration process.

  1. Sign in to your 2Checkout account.
  2. Navigate to Dashboard → Integrations → Webhooks & API section
  3. Follow these steps to activate Redirect URL:

4. Click Update to save your settings. 

 ​​​

About 3dcart

Fast, reliable, and most of all EASY TO USE, 3dcart will get your business online in just a few minutes! We provide the software, the hardware, and the support!

For more information, visit: 3dcart.com

 

API Reference

This is a summary of the objects/classes and methods available.

2Pay.js - Payments Solution

Overview

The 2Pay.js Javascript library is a quick and secure way to collect sensitive credit card payments, using customizable UI components that give merchants full control over the checkout experience. It allows merchants to create seamless payment flows while keeping the need for PCI compliance to a minimum SAQ A level. This means that shoppers pass sensitive payment information directly to the 2Checkout platform without sharing their credit card details with the merchant.

Availability

The 2Pay.js payments solution is available for all 2Checkout merchants who already use or want to use the 2Checkout API integration, no matter what business model they have. 

Requirements

To benefit from the 2Pay.js solution, merchants need to be integrated with the 2Checkout API and use the latest version - API 6.0

Merchants with <20,000 transactions/year are recommended to have an SAQ-A filled in, but merchants >20,000 transactions are required to do so.

 

   To maintain reduced PCI scope, it is mandatory to always include the 2pay.js library hosted on 2Checkout’s servers. Do not use bundle libraries that contain 2pay.js or host a copy of the 2pay.js library from your own servers as this increases your PCI requirements.

Benefits

The 2Pay.js solution brings multiple benefits for both merchants and shoppers:

  • Improved payment processing with a more secure and compliant system
  • Full-cart ownership for merchants as they don't need to handle customer data, by tokenizing the payment information for them
  • Reduced complexity for the PCI DSS validation process via an SAQ-A self-questionnaire​
  • Improved security for shoppers, who will pass sensitive payment data directly to the 2Checkout platform, thus bypassing the merchant's systems.

Activation

2Pay.js can be implemented by merchants via a JavaScript library that allows them to include the payment fields at checkout without the need to handle shoppers' credit card data in any way, as shown by the steps below:

  • Merchants include a few lines of code in the interface where they need to collect payment information.​
  • Merchants will run a JS library that will replace the input fields with iframes
  • The iframes will collect and send shoppers' card data directly to the 2Checkout​ platform

How it works

Triggering an order with 2Pay.js will work like any other order placed via API​: the JavaScript library will pass the credit card data to the 2Checkout system and it will return a payment token​. The API order is placed using the payment token​.

  1. The merchant runs a JavaScript library that will change the billing form by replacing the input fields with iframes. This way the data is sent directly to the 2Checkout system.​
  2. In return, the merchant receives a token for the saved credit card information from the 2Checkout platform.​ The token is valid for 10 minutes. 
  3. The merchant submits the billing information and the payment token via the 2Checkout API.​
  4. The 2Checkout platform matches the token with the card data, extracts the card data and authorizes the payment, and stores the card in the vault. ​
  5. The merchant then redirects the customer to the Order Confirmation page​.
  6. Once the order is approved, the merchant receives a notification from the 2Checkout platform.
  7. Finally, the 2Checkout system sends a notification once the payment is settled.​

Use cases

See here some use cases for the 2Pay.js implementation.

FAQ

1. What payment methods are available for use with the 2Pay.js library?

All API version 6 accepted credit cards can be used with the 2Pay.js library.

2. What integrations does 2Pay.js support?

2Pay.js was developed for integration within web sites so that it allows full seamless integration with the merchants' checkout flow.

3. Does 2Pay.js support 3D Secure version 2?

While 2Pay.js does not need 3D Secure support, the integration for this security check is done via API once the order is placed with the payment token. More information about the 3DS flow in the API can be found here.

4. How can I include the N/A value in the required API fields?

You can easily include the N/A value in the required API fields as shown below:

// For US:

"BillingDetails": {
    "Address1": "N/A",
    "City": "n/a",
    "CountryCode": "US",
    "Email": "customer@2Checkout.com",
    "FirstName": "Customer",
    "FiscalCode": null,
    "LastName": "2Checkout",
    "Phone": "N/A",
    "State": "NY",
    "Zip": "10075"
  },


// For the rest of the world:

"BillingDetails": {
    "Address1": "N/A",
    "City": "n/a",
    "CountryCode": "RO",
    "Email": "customer@2Checkout.com",
    "FirstName": "Customer",
    "FiscalCode": null,
    "LastName": "2Checkout",
    "Phone": "N/A",
    "State": "N/a",
    "Zip": "N/A"
  },

Integrate WHMCS

Overview

WHMCS is an all-in-one Content Management System including client management, billing & support solution for online businesses and web hosts.​

Merchants can use the WHMCS connector to integrate with 2Checkout and process orders via ConvertPlus, InLine Checkout, and 2Pay.js, and provide an improved experience to their shoppers.​

Availability

The WHMCS integration is available only for 2Checkout accounts that handle their own tax and invoice management (2Sell and 2Subscribe accounts).

WHMCS Settings

Regardless of the fact that you are already using the WHMCS connector or you want to start using it to integrate with 2Checkout, you need to follow the steps below:

  1. Download the 2Checkout payment module from GitHub by clicking on the Code button and then on Download ZIP.
    whmcs_github.png
  2. Sign in to your WHMCS admin panel.
  3. Navigate to Setup → Payments and click on Payment Gateways.
    whmcs integration with 2Checkout_1.png
  4. On the Payment Gateways page, click on the All Payment Gateways tab.
    whmcs integration with 2Checkout_2.png
  5. On the All Payment Gateways page, select 2Checkout's ConvertPlus, InLine Checkout, and API Gateway (2Pay.js).
    whmcs integration with 2Checkout_3.png
  6. Go to Manage Existing Gateways and configure each cart option by adding the required information from your 2Checkout Merchant Control Panel.
    whmcs integration with 2Checkout_4.png

    • Tick the Show on Order Form box if you want this information to be displayed on the order.
    • Add the Merchant Code.
    • Add the Buy-Link Secret Word.
    • Add the Secret key.
    • Tick Test Mode if you wish to enable it. This allows you to place test orders using test payment methods, to check your integration with 2Checkout.
    • Tick the Skip 2CO Fraud Check box, if you want to mark invoices as paid without waiting for the 2Checkout fraud review.
    • Add Reasons for Refunds.
    • Click on Save Changes.
    1. The Merchant Code is your 2Checkout Merchant Code that you can obtain by logging in to your Merchant Control Panel and navigating to Integrations → Webhooks & API. 
    2. To find the Buy-Link Secret Word, log  in to your 2 Checkout Merchant Control Panel and navigate to Integrations → Webhooks & API → Secret Word . Edit your INS Secret Word to match the Buy-Link Secret Word , copy the value and paste it in the WHMCS admin panel.
    3. The Secret key can be found in your 2Checkout Merchant Control Panel, right next to the Merchant Code. Copy and paste it in your  WHMCS admin panel.

    INS secret word.png
    whmcs integration with 2Checkout_5.png

    Since WHMCS does not support special characters, but only letters (a-z) and digits, you can use a code generator to obtain a Secret Word that needs to be saved both in the 2Checkout Control Panel and the WHMCS admin. 

2Checkout Settings

Follow the below instructions to finalize the WHMCS integration process.

  1. Sign in to your 2Checkout Merchant Control Panel account.
  2. Navigate to Dashboard → Integrations → Webhooks & API section.
    Webhooks & API section
  3. Follow these steps to activate Redirect URL:
  4. In the Webhooks and API section, under the Instant Notification Service (INS) card, check the Enable Global URL box.
    whmcs integration with 2Checkout_6_INS.png
  5. Enter http://www.yourdomain.com/whmcs/modu.../2checkout.php as the global endpoint URL.
  6. Click on Update to save your changes.
  7. Make sure to enable the IPN webhook notification in your Merchant Control Panel.
    • Log in to the 2Checkout Merchant Control Panel and navigate to Integrations → Webhooks & API.
    • Scroll down to the Notifications section and select IPN or Email Text & IPN from the drop-down, and then click on the Configure IPN button.
    • On the IPN Settings page, click on Add IPN URL.
    • Input the IPN URL available in the configuration page in the WHMCS admin, select the SHA 2 / SHA 3 hash and click on Add IPN.
      Add IPN
    • After adding the IPN URL, the URL should be displayed in the IPN URLs section in your Merchant Control Panel.
      IPN URLs section
    • Enable all triggers and response tags.
      set_up_IPN_in_merchant_control_panel_4.png

About WHMCS

WHMCS is an all-in-one client management, billing & support solution for online businesses. Handling everything from signup to termination, WHMCS is a powerful business automation tool that puts you firmly in control.

For more information visit WHMCS.com.

Integrate Ecwid

Availability

Ecwid integration is available only for 2Checkout accounts that handle their own tax and invoice management (2Sell and 2Subscribe accounts). 

Ecwid settings:

  1. Create a new 2Checkout account
  2. Go to Ecwid Control Panel → Payment
  3. Scroll down to Other ways to get paid
  4. Click Choose Payment Processor to see the list of payment gateways available for your country
  5. Select 2Checkout from the drop-down menu
  6. You will see 2Checkout Account Details. Find and copy your Approved and INS URL and save it somewhere as you will need it later

2Checkout settings:

  1. Go to your 2Checkout Merchant Account
  2. Navigate to Dashboard → Integrations → Webhooks & API
  3. In the Redirect URL section, set the Return Method to “Header redirect”
    • In the Approved URL field, paste the “Approved and INS URL” that you copied earlier from your Ecwid control panel
    • Click Update to save the changes
  4. In the Instant Notification System (INS) section:
    • Select Enable INS and Enable global URL and paste the value of “Approved and INS URL” you saved earlier
    • Click Update to save the changes
  5. In the Secret word section:
    • Make sure both the INS secret word and the Buy-link secret word are set to the same value and copy it
  6. Return to the 2Checkout Account Details in your Ecwid control panel
  7. Enter your 2Checkout account number (Merchant Code) and the INS secret word
  8. Scroll to Appearance options and enable this payment method

About Ecwid

Ecwid is a cloud-based e-commerce platform that helps to easily create a bold, easy to use online store and start selling anywhere online or in-person. Ideal for small and medium sized businesses. Ecwid can be seamlessly integrated with your existing website, business page on a social network, your blog, marketplaces or mobile app. All the storefronts are synced and managed from one control panel. Ecwid lets you organize your products, customize your storefront, accept credit card payments, track and respond to orders — all with a few clicks of the mouse. Find out more about Ecwid here.

 

 

Dispute balance

Overview

Disputes Balance is a financial mechanism designed to manage the funds of order transactions for which customers disputed the charges made using their credit / debit card or PayPal.

When shoppers initiate chargebacks, the equivalent of the disputed charges is debited from 2Checkout's bank account. Disputed charges are also reflected in the 2Checkout system and the funds paid by shoppers for disputed transactions are retained in the Disputes Balance. Once a chargeback resolution is reached, the disputed charges are released from the Disputes Balance.

How 2Checkout calculates Dispute Balance amounts

Disputes Balance amounts are calculated by deducting affiliate commissions and taxes from the total order amount (the costs incurred by shoppers). Disputes Balance amounts include 2Checkout processing fees.

2Checkout charges commissions for the initial transactions associated with orders refunded as a result of chargeback disputes initiated by shoppers.

Dispute balance process flow

  1. Customers can dispute charges to their credit/debit cards or PayPal claiming reasons such as:
    • Order not fulfilled/not delivered
    • Product(s) not as described/unfunctional
    • Duplicate order
    • Fraud/Order not recognized: Customers claim that they don't recognize the charge
    • Agreed refund not processed
    • New/renewal order not recognized
    • Authorization problem
    • Information request
  2. 2Checkout is informed by the shopper bank or by PayPal of the chargeback initiated and the dispute is also reflected into the system. The disputed amount is debited from 2Checkout's bank account.
  3. 2Checkout retains the funds associated with disputed orders, adding the value to the Disputes Balance.
  4. 2Checkout works with the shopper bank or PayPal to resolve the disputes in your favor until a resolution is reached.
  5. There are two possible outcomes to this process:
    • You win the dispute, in which case the funds retained are released from the Disputes Balance and paid to you with the next due payment.
    • You lose the dispute , in which case the funds retained are also released from the Disputes Balance. Refunds are issued reflecting the money paid back to shoppers. As is the case with all refunds, the order processing commissions received by 2Checkout will not be returned to you.

Dashboard account balance information

The account balance report on the 2Checkout dashboard shows information on the Disputes Balance from the moment of the last payment you received from 2Checkout.

  • Retained to Disputes Balance - the value of all disputed charges retained for chargebacks initiated in the report period starting from the last payment you received from 2Checkout.
  • Released from Disputes Balance - the value of all disputed charges released for chargebacks closed in the report period starting from the last payment you received from 2Checkout.

Disputes Balance email

Disputes Balance data is reported using a standalone notification in addition to the 2Checkout Sales Report you receive each payment cycle. This email report details only the amounts retained and released from Disputes Balance.

The 2Checkout Sales Report also includes Disputes Balance information in addition to refund info.

Accounting Summary

This report centralizes payment data, including upcoming transfers.

  • Balance represents an estimated value of the funds you're due to receive on the next payment.
  • Overall Disputes Balance represents the total value of unresolved disputed charges for complete orders that 2Checkout retains until a chargeback resolution is reached (Released Disputes Charges are deducted from the Overall Disputes Balance). Released Disputes amounts for transactions in non-payment currencies are reported in your account's default payment currency.
  • Retained to Disputes Balance - the value of all disputed charges retained for chargebacks initiated in the report period starting from the last payment you received from 2Checkout.
  • Released from Disputes Balance - the value of all disputed charges released for chargebacks closed in the report period starting from the last payment you received from 2Checkout.

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