Overview
This API is used to create or update an Access Fee Override against a Package Subscription or Service Subscription.
Usage
To create or update an Access Fee Override:
- Create a "AddAccessFeeOverride" request
- Specify the "PackageSubscriptionID" or "ServiceSubscriptionID"
- Specify the "Price" or "Markup"
- Authorise the request with valid API credentials
- Optionally specify the additional fields (StartDate, EndDate, ReplaceExistingOverride and SetStartToActivationDate).
Business Rules
- "Manage Access Fee Overrides" feature should be enabled for Service Provider (otherwise, validation message: "Manage Access Fee Overrides" feature is not enabled)
- Package Subscription ID and Service Subscription ID cannot both be provided at the same time (otherwise, validation message: PackageSubscriptionID and ServiceSubscriptionID cannot both be provided at the same time)
- Package Plan or Service Plan should support Access Fee Overrides (otherwise, validation message: Package Plan or Service Plan does not support fee overrides)
- Today (truncated to midnight) will be used if there is no Start Date information
SOAP Example
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:emersion:api" xmlns:urn1="urn:emersion:types">
<soapenv:Header/>
<soapenv:Body>
<urn:AddAccessFeeOverride>
<urn:ServiceSubscriptionID>4732809</urn:ServiceSubscriptionID>
<urn:Price>
<urn1:Amount>999</urn1:Amount>
</urn:Price>
<urn:SetStartToActivationDate>true</urn:SetStartToActivationDate>
</urn:AddAccessFeeOverride>
</soapenv:Body>
</soapenv:Envelope>
Field Descriptions
All field names are case sensitive. Check enumerated values in the descriptions to confirm capitalisation and spacing. See field types for additional information..
| Name | Description | Required? | Field Type | Character limit | Values |
|---|---|---|---|---|---|
PackageSubscriptionID | Package Subscription ID to be processed | Yes (if ServiceSubscriptionID is empty) | ID | 3241020 | |
ServiceSubscriptionID | Service Subscription ID to be processed | Yes (if PackageSubscriptionID is empty) | ID | 4732809 | |
Price > Amount | Price to be overridden | Yes (if Markup > Percentage is empty) | float | 999.99 | |
Price > TaxType > ID | Tax Type ID of Price (refer to the TAX Reference report (Report > List > Reference > Tax Type List - #874) | No | ID | 2 | |
| Markup > Percentage | Markup to be overridden | Yes (if Price > Amount is empty) | float | 11.11 | |
| StartDate | Start Date of Override (if not provided, today which is truncated to midnight should be used) | No | date | 2024-01-01 | |
| EndDate | End Date of Override | No | date | 2024-12-31 | |
| ReplaceExistingOverride | A flag whether it should update the Last Override (fields to be updated: (Price > Amount), (Price > TaxType > ID), (Markup > Percentage), StartDate, and EndDate) | No | boolean | false | |
| SetStartToActivationDate | A flag of whether Start Date of Override should be the same as Activation Date (Note: Activation Date is Start Date of Package or Service Subscription) | No | boolean | true |
Error Handling
| Error Message | Description |
|---|---|
| Start Date cannot be earlier than Start Date of Subscription | New override start date can not be before the start date of subscription as it depends on subscription |
| EndDate cannot be specified without a StartDate | New override end date should be provided with new start date as they can provide the intention |
| SetStartToActivationDate cannot be used at the same time as StartDate/EndDate | SetStartToActivationDate can not be provided with new start or end date as they should confuse the intention |
| SetStartToActivationDate cannot be used when Subscription is not PreActive or if there is already an Override in place | Can not apply to set the start date to activation date if the status of subscription is not PreActive or the existing Override is already in place |
| StartDate is at or before the start of an existing override | Cannot create new override if its start date is earlier or equal than the start date of the existing override |
| New override period overlaps with an existing override period and EndExistingOverride flag is not set | Cannot create new override if the existing last override is not enddated or the new start date is earlier than the end date of last override |
| There is an existing override and ReplaceExistingOverride flag is not set | ReplaceExistingOverride must be set to 'True' if an existing override exists and it's start date is null |