Product
Version: 1.33
Parameters
Extends: TractObject
Element | Required? | Type | Description |
---|---|---|---|
productPrices |
Yes |
productPrices |
All one-time and recurring prices associated with this product. |
productCategory |
Yes |
productCategory |
The product's category, used for reporting and organization. |
serviceResourceCategory |
ServiceResourceCategory |
The product's category as a service resource. |
|
actions |
actions |
Actions associated with this product. |
|
productUsageRules |
productUsageRules |
Usage rule or rules associated with this product. |
|
productTags |
productTags |
Tags associated with this product. Tags help you organize your products for ease of access. |
|
productRegisterType |
productRegisterType |
The prepaid balance register type this product contributes to or consumes from. |
Attribute | Required? | Datatype | Description |
---|---|---|---|
name |
Yes |
string |
The product name. |
description |
Yes |
string |
The product's description. |
shortDescription |
Yes |
string |
Displayed in reports and other fields with limited space. |
productTypeCode |
Yes |
ProductTypeCode |
TRACT_SUBSCRIPTION SUBSCRIPTION SERVICE_DEVICE GENERAL_PRODUCT ADDON COUPON ADDON_WITH_USAGE SUBSCRIPTION_WITH_USAGE |
productState |
Yes |
ProductState |
PRODUCT_DRAFT PRODUCT_AVAILABLE PRODUCT_NOT_AVAILABLE |
sku |
string |
Inventory or SKU number for this product. |
|
requiresAgreement |
boolean |
Does this product require an agreement? |
|
serialized |
boolean |
Is this product unique? |
|
taxable |
boolean |
Is this product taxable? |
|
trial |
boolean |
Is this a trial product? |
|
trialDays |
int |
Number of days the trial lasts. |
|
defaultQuantity |
string |
Default quantity for orders. |
|
internalName |
string |
Optional. Internal name, not displayed to customers. |
|
externalProductNumber |
string |
Optional. Additional product number. |
|
minServiceResources |
int |
Optional. Minimum number of service resources for this product. |
|
maxServiceResources |
int |
Optional. Maximum number of service resources for this product. |
|
trialOverride |
boolean |
Override the number of trial days? |
|
productLevel |
int |
The product's level (used for organization |
|
introductionDate |
Yes |
dateTime |
Product's creation date. Defaults to creation datetime. |
ruleOverride |
boolean |
Allow the usage rule to be overridden at time of order. |
|
ruleType |
RuleType |
TAPERED TIERED |
|
ruleMode |
RuleMode |
ROOT APPEND OVERWRITE |
|
fundPrepaidBalance |
boolean |
A flag to determine if the product funds a prepaid balance. |
|
consumePrepaidBalance |
boolean |
A flag to determine if the product consumes a prepaid balance. |
Querying Product
For paged results, use the plural of the entity name (for example, billingAccounts, productCategories). For more information, refer to Understanding Queries.
Key | Type |
eid |
Long |
name |
String |
internalName |
String |
externalProductNumber |
String |
sku |
String |
productTypeCode |
ProductTypeCode |
productState |
ProductState |
serviceResourceCategoryEid |
Long |
serviceResourceCategoryName |
String |
productCategoryEid |
Long |
productCategoryName |
String |
priceListEid |
Long |
priceListIsMaster |
Boolean |
currencyType |
Currency |
productTagEid |
Long |
discountCodeEid |
Long |
discountIdentifier |
String |
agreementEid |
Long |
getProducts |
GET |
https://my.tractbilling.com/t/s/r/1.33/products |
createProduct |
POST |
https://my.tractbilling.com/t/s/r/1.33/products |
addPrice |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/addPrice |
deleteProduct |
DELETE |
https://my.tractbilling.com/t/s/r/1.33/products/{eid} |
getProduct |
GET |
https://my.tractbilling.com/t/s/r/1.33/products/{eid} |
updateProduct |
PUT |
https://my.tractbilling.com/t/s/r/1.33/products/{eid} |
activate |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/activate |
addProductRelation |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/addRelation |
removeProductRelation |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/removeRelation |
addAgreementRelation |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/addAgreement |
removeAgreement |
POST |
https://my.tractbilling.com/t/s/r/1.33/products/{eid}/removeAgreement |
getProductPrices |
GET |
https://my.tractbilling.com/t/s/r/1.33/productPrices |
getProductPrice |
GET |
https://my.tractbilling.com/t/s/r/1.33/productPrices/{eid} |
getOneTimeProductPrices |
GET |
https://my.tractbilling.com/t/s/r/1.33/oneTimeProductPrices |
getOneTimeProduct |
GET
|
https://my.tractbilling.com/t/s/r/1.33/oneTimeProductPrices/{eid} |
updateOneTimeProductPrice |
PUT |
https://my.tractbilling.com/t/s/r/1.33/oneTimeProductPrices/{eid} |
getRecurringProductPrices |
GET |
https://my.tractbilling.com/t/s/r/1.33/recurringProductPrices |
getRecurringProduct |
GET |
https://my.tractbilling.com/t/s/r/1.33/recurringProductPrices/{eid} |
updateRecurringProductPrice |
PUT |
https://my.tractbilling.com/t/s/r/1.33/recurringProductPrices/{eid} |
Sample Requests and Responses
SOAP
Example Query and Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:query> <!-- Optional: --> <ser:queryRequest > <dom:simpleDataQuery > <dom:type>Product</dom:type> <parameter parameter="eid" parameterValue="992"/> </dom:simpleDataQuery> </ser:queryRequest> </ser:query> </soapenv:Body> </soapenv:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:queryResponse xmlns="http://www.tractbilling.com/billing/1_31/domain" xmlns:ns2="http://www.tractbilling.com/billing/1_31/service"> <ns2:return successful="true"> <products pageNumber="1" pageSize="50" totalElements="1" elementCount="1" totalPages="1"> <product name="Winter Special" description="Winter Sales" productTypeCode="SUBSCRIPTION" productState="PRODUCT_AVAILABLE" requiresAgreement="false" serialized="true" taxable="false" trial="false" defaultQuantity="1" minServiceResources="0" maxServiceResources="0" trialOverride="false" eid="992"> <productPrices pageNumber="1" pageSize="50" totalElements="1" elementCount="0" totalPages="1"/> <serviceResourceCategory name="Winter Sales" type="GENERICSRVRESOURCE" status="ACTIVE" eid="206"/> <actions pageNumber="1" pageSize="50" totalElements="0" elementCount="0" totalPages="0"/> </product> </products> </ns2:return> </ns2:queryResponse> </soap:Body> </soap:Envelope>
Create Product
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:create> <!-- Optional: --> <ser:createRequest> <dom:product name="test-421" productTypeCode="SUBSCRIPTION" description="test1" introductionDate="2014-01-02T22:00:00" > <dom:productCategory eid="5"/> </dom:product> </ser:createRequest> </ser:create> </soapenv:Body> </soapenv:Envelope>
Update Product
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:update> <!-- Optional: --> <ser:updateRequest> <dom:product eid="213" name="avc-21"></dom:product> </ser:updateRequest> </ser:update> </soapenv:Body> </soapenv:Envelope>
Add Recurring Price to Product
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:command> <ser:commandRequest> <dom:addProductPriceToProduct> <dom:product eid="215"/> <dom:recurringProductPrice recurringPaymentRequired="false" recurrenceAmount="10" recurrencePeriod="BILLCYCLE" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-03-25T00:00:00.000-05:00" priceOverride="true" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="10.00" level="1" currencyType="USD"/> </dom:priceRanges> </dom:recurringProductPrice> </dom:addProductPriceToProduct> </ser:commandRequest> </ser:command> </soapenv:Body> </soapenv:Envelope>
Add One-Time Price to Product
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:command> <ser:commandRequest> <dom:addProductPriceToProduct> <dom:product eid="215"/> <dom:oneTimeProductPrice allowScheduledCharges="false" chargeDuringRenewal="false" currencyType="USD" fromDate="2013-10-20T00:00:00.000-05:00" paymentOnPurchaseRequired="false" priceOverride="true" type="OneTime"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="10.00" level="1" currencyType="USD"/> </dom:priceRanges> </dom:oneTimeProductPrice> </dom:addProductPriceToProduct> </ser:commandRequest> </ser:command> </soapenv:Body> </soapenv:Envelope>
Update Recurring Price (Draft product only)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:update> <!-- Optional: --> <ser:updateRequest> <dom:recurringProductPrice recurringPaymentRequired="false" recurrencePeriod="BILLCYCLE" recurrenceAmount="10.00000" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-01-24T23:00:00.000-06:00" priceOverride="true" allowScheduledCharges="false" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD" eid="309" > <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="25.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:recurringProductPrice> </ser:updateRequest> </ser:update> </soapenv:Body> </soapenv:Envelope>
Update One-Time Price (Draft product only)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:update> <!-- Optional: --> <ser:updateRequest> <dom:oneTimeProductPrice chargeDuringRenewal="false" fromDate="2015-10-19T23:00:00.000-06:00" priceOverride="true" allowScheduledCharges="false" type="OneTime" paymentOnPurchaseRequired="false" currencyType="USD" eid="318"> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="20.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:oneTimeProductPrice> </ser:updateRequest> </ser:update> </soapenv:Body> </soapenv:Envelope>
Activate Product
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:command> <ser:commandRequest> <dom:activateProduct> <dom:product eid="242"/> </dom:activateProduct> </ser:commandRequest> </ser:command> </soapenv:Body> </soapenv:Envelope>
Modify One-time Price
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:command> <ser:commandRequest> <dom:addProductPriceToProduct> <dom:product eid="242"/> <dom:oneTimeProductPrice allowScheduledCharges="false" chargeDuringRenewal="false" currencyType="USD" fromDate="2015-12-20T00:00:00.000-05:00" paymentOnPurchaseRequired="false" priceOverride="true" type="OneTime"> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="7.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:oneTimeProductPrice> </dom:addProductPriceToProduct> </ser:commandRequest> </ser:command> </soapenv:Body> </soapenv:Envelope>
Modify Recurring Price
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.tractbilling.com/billing/1_31/service" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <soapenv:Header/> <soapenv:Body> <ser:command> <ser:commandRequest> <dom:addProductPriceToProduct> <dom:product eid="242"/> <dom:recurringProductPrice recurringPaymentRequired="false" recurrenceAmount="10" recurrencePeriod="BILLCYCLE" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-01-25T00:00:00.000-05:00" priceOverride="true" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="25.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:recurringProductPrice> </dom:addProductPriceToProduct> </ser:commandRequest> </ser:command> </soapenv:Body> </soapenv:Envelope>
REST
Example Query and Response
-
GET https://my.tractbilling.com/t/s/r/1.33/products?eid=6790
<?xml version="1.0" encoding="UTF-8"?> <products xmlns="http://www.tractbilling.com/billing/1_31/domain/rest" elementCount="1" pageNumber="1" pageSize="50" totalElements="1" totalPages="1"> <ns2:product xmlns:ns2="http://www.tractbilling.com/billing/1_31/domain" defaultQuantity="1.00000" description="Pure Vinyl Music Magazine 1 Year Subscription" eid="6790" introductionDate="2016-01-10T20:25:00.000-06:00" maxServiceResources="0" minServiceResources="0" name="PVM Magazine Subscription" productState="PRODUCT_AVAILABLE" productTypeCode="SUBSCRIPTION" queryScope="SHALLOW" requiresAgreement="false" ruleOverride="false" ruleType="TAPERED" serialized="true" shortDescription="PVM Magazine Subscription" taxable="false" trial="false" trialOverride="false"> <ns2:productPrices elementCount="0" pageNumber="1" pageSize="50" totalElements="1" totalPages="1"/> <ns2:productCategory eid="544" queryScope="EID"/> <ns2:serviceResourceCategory eid="732" queryScope="EID"/> <ns2:actions elementCount="0" pageNumber="1" pageSize="50" totalElements="0" totalPages="0"/> <ns2:productTags elementCount="0" pageNumber="1" pageSize="50" totalElements="0" totalPages="0"/> </ns2:product> </products>
Create Product
-
POST https://my.tractbilling.com/t/s/r/1.33/products
<dom:product name="test-621" productTypeCode="SUBSCRIPTION" description="test1" introductionDate="2014-01-02T22:00:00" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:productCategory eid="5"/> </dom:product>
Update Product
-
PUT https://my.tractbilling.com/t/s/r/1.33/products/213
<dom:product eid="213" name="aec-21" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> </dom:product>
Add Recurring Price to Product
-
POST https://my.tractbilling.com/t/s/r/1.33/products/216/addPrice
<dom:addProductPriceToProduct xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:product eid="216"/> <dom:recurringProductPrice recurringPaymentRequired="false" recurrenceAmount="10" recurrencePeriod="BILLCYCLE" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-03-25T00:00:00.000-05:00" priceOverride="true" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="10.00" level="1" currencyType="USD"/> </dom:priceRanges> </dom:recurringProductPrice> </dom:addProductPriceToProduct>
Add One-Time Price to Product
-
POST https://my.tractbilling.com/t/s/r/1.33/products/216/addPrice
<dom:addProductPriceToProduct xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:product eid="216"/> <dom:oneTimeProductPrice allowScheduledCharges="false" chargeDuringRenewal="false" currencyType="USD" fromDate="2013-10-20T00:00:00.000-05:00" paymentOnPurchaseRequired="false" priceOverride="true" type="OneTime"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="10.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:oneTimeProductPrice> </dom:addProductPriceToProduct>
Update Recurring Price (Draft product only)
-
PUT https://my.tractbilling.com/t/s/r/1.33/recurringProductPrices/314
<dom:recurringProductPrice recurringPaymentRequired="false" recurrencePeriod="BILLCYCLE" recurrenceAmount="10.00000" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-01-24T23:00:00.000-06:00" priceOverride="true" allowScheduledCharges="false" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD" eid="314" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="25.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:recurringProductPrice>
Update One-Time Price (Draft product only)
-
PUT https://my.tractbilling.com/t/s/r/1.33/oneTimeProductPrices/318
<dom:oneTimeProductPrice chargeDuringRenewal="false" fromDate="2015-10-19T23:00:00.000-06:00" priceOverride="true" allowScheduledCharges="false" type="OneTime" paymentOnPurchaseRequired="false" currencyType="USD" eid="318" xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="22.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:oneTimeProductPrice>
Activate Product
Product must be in Draft status and have a price or prices associated with it.
-
POST https://my.tractbilling.com/t/s/r/1.33/products/243/activate
<dom:activateProduct xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:product eid="243"/> </dom:activateProduct>
Modify One-time Price
-
POST https://my.tractbilling.com/t/s/r/1.33/products/243/addPrice
<dom:addProductPriceToProduct xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:product eid="243"/> <dom:oneTimeProductPrice allowScheduledCharges="false" chargeDuringRenewal="false" currencyType="USD" fromDate="2015-12-16T00:00:00.000-05:00" paymentOnPurchaseRequired="false" priceOverride="true" type="OneTime"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="5.00" level="1" currencyType="USD" /> </dom:priceRanges> </dom:oneTimeProductPrice> </dom:addProductPriceToProduct>
Modify Recurring Price
-
POST https://my.tractbilling.com/t/s/r/1.33/products/243/addPrice
<dom:addProductPriceToProduct xmlns:dom="http://www.tractbilling.com/billing/1_31/domain"> <dom:product eid="243"/> <dom:recurringProductPrice recurringPaymentRequired="false" recurrenceAmount="10" recurrencePeriod="BILLCYCLE" proratedOnOrder="false" proratedOnCancel="false" proratedOnOrderNoCharge="false" billInAdvance="true" fromDate="2015-03-25T00:00:00.000-05:00" priceOverride="true" type="Recurring" paymentOnPurchaseRequired="false" currencyType="USD"> <dom:priceCategory eid="6"/> <dom:priceRanges> <dom:priceRange quantityBeginRange="0.00" price="10.00" level="1" currencyType="USD"/> </dom:priceRanges> </dom:recurringProductPrice> </dom:addProductPriceToProduct>