Fee

The Fee complex type specifies a specific Fee for a item to be sold. Properties include the key of the specific Price, the primary key of an already-existing line item (InvoiceDetailType) if a Fee is to be removed, the quantity, price amount (overrideamount) if the default amount is not to be used, and the enumerated FeeAction.

The Fee type is implemented as an unbounded element of the Fees complexType.

Fee Properties

Name Type Occurs Description
prc_key guid 1..1 The key of the Price.
ivd_key guid 1..1 The key of the InvoiceDetailStaticType (line item); used only when FeeAction is Remove. You'll set this to the ivd_key of the line item to remove. If you're adding a new item (FeeAction=Add) then leave this property empty or supply the empty-guid value of 00000000-0000-0000-0000-000000000000.
qty int 1..1 Quantity. Typically 1.
overrideamount decimal 1..1 Currently this property is used only for Fundraising donation amounts. Other product types do not use this property.
action FeeAction 1..1 Either Add or Remove.

Event Registration

For group and single event registrations, overrideamount is ignored. Just enter 0. For qty, enter 1.

<Fee>
<prc_key>03B32DEC-20DB-4498-A899-6A689B47358F</prc_key>
<ivd_key>00000000-0000-0000-0000-000000000000</ivd_key>
<qty>1</qty>
<overrideamount>0</overrideamount>
<action>Add</action>
</Fee>

Fundraising Gifts

For fundraising gifts, you must enter the actual donation amount in overrideamount, regardless of what the default price is. If you neglect to set this property, then the donation amount will be 0.00. The qty property is ignored.

<Fee>
<prc_key>03B32DEC-20DB-4498-A899-6A689B47358F</prc_key>
<ivd_key>00000000-0000-0000-0000-000000000000</ivd_key>
<qty>1</qty>
<!-- This is a $1,000.000 donation -->
<overrideamount>1000.00</overrideamount>
<action>Add</action>
</Fee>

Membership

For memberships, the qty and overrideamount properties are ignored.

<Fee>
<prc_key>03B32DEC-20DB-4498-A899-6A689B47358F</prc_key>
<ivd_key>00000000-0000-0000-0000-000000000000</ivd_key>
<qty>0</qty>
<overrideamount>0</overrideamount>
<action>Add</action>
</Fee>

Exhibitor

For exhibits, the qty property determines the number of Booths that will be added. The overrideamount is ignored.

<Fee>
<prc_key>03B32DEC-20DB-4498-A899-6A689B47358F</prc_key>
<ivd_key>00000000-0000-0000-0000-000000000000</ivd_key>
<qty>1</qty>
<overrideamount>0</overrideamount>
<action>Add</action>
</Fee>

Comparison

The charts below show how to set Fee properties for the Add and Remove operations for the different product types, based on the information in the sections above. As illustrated, certain properties are ignored in certain cases (Add or Remove) for certain product types; those cases are shown in gray font.

Adding Items

How to set Fee properties when Fee.FeeAction is Add:

Product Type prc_key ivd_key qty overrideamount
Events prc_key of the Event or Session Fee Empty-Guid Set to 1 ignored; set to 0 or empty
Fundraising prc_key of the Fundraising Product Empty-Guid ignored; set to 1 or empty Set to donation amount
Membership prc_key of the Membership Package Empty-Guid ignored; set to 1 or empty ignored; set to 0 or empty
Exhibits prc_key of the Exhibit Fee Empty-Guid Set to the number of booths; typically 1 ignored; set to 0 or empty.

Removing Items

How to set Fee properties when Fee.FeeAction is Remove. As shown, only the ivd_key property is used.

Product Type prc_key ivd_key qty overrideamount
Events Empty-Guid The ivd_key of the Line Item Object to remove ignored; set to 0 or empty ignored; set to 0 or empty
Fundraising Empty-Guid The ivd_key of the Line Item Object to remove ignored; set to 0 or empty ignored; set to 0 or empty
Membership Empty-Guid The ivd_key of the Line Item Object to remove ignored; set to 0 or empty ignored; set to 0 or empty
Exhibits Empty-Guid The ivd_key of the Line Item Object to remove ignored; set to 0 or empty ignored; set to 0 or empty

Sample of Remove:

<Fee>
<prc_key>00000000-0000-0000-0000-000000000000</prc_key>
<!-- if you're removing a Fee, then you must specify the specific Line Item's ivd_key -->
<ivd_key>5E7CE4A8-FF02-405A-AE17-6D5CA458504E</ivd_key>
<qty>0</qty>
<overrideamount>0</overrideamount>
<action>Remove</action>
</Fee>

Namespaces

When passing a Fee as a parameter to xWeb web methods, be sure to set the namespace properly.

Important! Parameters that fail to specify proper namespaces will not be interpreted correctly and will result in method faults.

Schema

Here is the schema for Fee and FeeAction:

<s:complexType name="Fee">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="prc_key" type="s1:guid" />
<s:element minOccurs="1" maxOccurs="1" name="ivd_key" type="s1:guid" />
<s:element minOccurs="1" maxOccurs="1" name="qty" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="overrideamount" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" name="action" type="tns:FeeAction" />
</s:sequence>
</s:complexType>
<s:simpleType name="FeeAction">
<s:restriction base="s:string">
<s:enumeration value="Add" />
<s:enumeration value="Remove" />
</s:restriction>
</s:simpleType>

Here is an example of the web method which has a parameter for a Fees type:

<s:element name="WEBCentralizedShoppingCartEventRegistrantSetLineItems">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="oRegistration" type="tns:EventsRegistrantType" />
<s:element minOccurs="0" maxOccurs="1" name="oFeeCollection" type="tns:Fees" />
</s:sequence>
</s:complexType>
</s:element>