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>