Component Architecture

Commerce Web Services supports SOAP and REST implementations. The architecture is separated into four areas of functionality:

1. Service Information Service (SIS) – Provides methods for viewing the current capabilities configured for your application, such as Service IDs, workflows, operations supported, and other information related to your application’s configured processing capabilities.

2. Transaction Processing Service (TPS) – Contains all transaction processing calls to the platform and allows you to email a receipt to your customer.

3. Transaction Management Service (TMS) – Allows you to query for either a single transaction or a group of transactions with many parameter options. View a transaction’s complete history (Authorization, Void, Return, etc.) quickly and easily.

4. Customer Management Service (CMS) – Allows you to create and manage customers, as well as create single invoices or recurring subscription payments.

If you are using REST to integrate to the platform, you will be required to include the $type attribute for all calls to the transaction processing (TPS) endpoint. Example JSON requests for all transaction types are provided in the REST Implementation section.
If you are using SOAP to integrate to the platform, the base class of all payment requests is Transaction. Code samples are provided in the SOAP Implementation section.


There are four classes that inherit from Transaction:

  1. {{BankcardTransaction}}
  2. {{BankcardTransactionPro}}(contains additional Bankcard data)
  3. {{ElectronicCheckingTransaction}}
  4. {{StoredValueTransaction}}


The base Transaction class contains five members, some of which are inherited in sub-classes:

  1. {{TransactionData}}
  2. {{TransactionTenderData}}
  3. {{TransactionCustomerData}}
  4. {{TransactionReportingData}}
  5. {{IsOffline}}
{{TransactionData}} is inherited in {{BankcardTransactionData}}, {{ElectronicCheckingTransactionData}}, and {{StoredValueTransactionData}}.
{{TransactionCustomerData}} and {{TransactionReportingData}} are not inherited by any sub-classes, as there are no payment-specific data members in these objects.