API/UseCases/ServiceOrders

From Emersion
Jump to: navigation, search

Overview

Emersion's APIs can be utilised to complete the onboarding of your end user customers. This article is aimed at developers to explain the required workflow for onboarding your customer via the APIs, particularly the workflow for orders themselves. For the purposes of this article, the term 'onboarding' refers to the following processes:

  • starting an order for a service.
  • completing a service qualification (SQ).
  • selecting a package plan to subscribe to.
  • configuring the service.
  • submission of the order.

In order for these processes to be completed successfully, the execution of API calls must be completed in the specific order below.

Prerequisites

The following prerequisites apply to using the APIs for ordering.

Preparation

Emersion strongly recommends you step through the order process in Cumulus before attempting to programmatically replicate the process outside the system. This is the best way to gain an optimal understanding of how the order process works. It will also reduce the developer time needed and assist with troubleshooting. A solid understanding of the process is essential.

Create the Account

Before you can commence an order, an account needs to exist in the system. This article focuses primarily on the workflow of the order, but in an end-to-end onboarding case scenario, it includes the creation of an account as a first step. If users may place orders for existing accounts, you may want to leverage off the GetAccount or GetAccountFromUsernameAndPassword methods to validate the customer.

Ordering Workflow

Diagrams

The following diagrams are a pictorial representation of the orders workflow for APIs.

Emersion APIs - Ordering Tools.png Emersion APIs - Ordering Serv Config Tools.png

START YOUR ORDER

Create Order

Start the order process with this API call in order to be able to progress to performing an SQ.

Perform Service Qualification (SQ)

After starting an order, the user needs to perform an SQ to confirm the service's availability. There are 3 choices for service providers to use depending on the service types being sold.

Important Note: Not all service types are currently supported by the available SQ APIs. Review the specific help page on each API call for further details. If you find that you are unable to complete a service order end-to-end because a service type you are subscribed to is not supported, please contact Emersion Sales.

Option 1

Perform Simple SQ
This API call creates an SQ entry so the user can proceed to the next step in the orders workflow. It is used for manual and semi-manually provisioned service types and for service types that do not require a service qualification.

Option 2

Perform General Phone SQ
This method provides the ability to perform an SQ for a service type that is defined as using the checktype GeneralPhone.

Option 3

Option 3 contains two methods to perform an address-based SQ.

Perform NWB SQ - Find Address
This method provides the ability to perform an SQ for AAPT NwB services. This part of the SQ is designed as a prerequisite for address based service qualifications for AAPT.

Perform NWB SQ - SQ
This API call takes the output from the Find NWB SQ Address and performs a service qualification (SQ) for the AAPT NwB service type.


PACKAGE SELECTION

Once the order has been started and a successful SQ result is known, the next step in the process is around package choice and selection. Use these two APIs to display a list of available packages for the user to choose from. After the user has selected a package, you can move onto the next phase of the order or optionally present further information regarding the package by using the method GetPackagePlanDetails.

Get Available Packages

This method will return a list of packages that are available to order once a successful SQ has been obtained.

Select Package Plan

The system needs to know what package is selected. This can only be done once per order. The order will error if subsequent submissions via this call are received.

SERVICE CONFIGURATION

For each service contained a package, information needs to be collected for a variety of purposes, including but not limited to authentication, provisioning and reporting. The following section contains several GET and SET functions that will handle all these service configuration requirements. Emersion may need to change the requirements for a service type from time to time without notice. These methods are designed to handle such evolutionary adaptations by gathering the up-to-date set of requirements each time.

GET METHODS

Get Service Configuration Requirements

This request will return all data fields that needs to be completed as part of configuring each service contained in the selected package, along with whether they are mandatory or not.

Get Service Feature Configuration Requirements

This call retrieves a list of service features that are mandatory or optional.

Get Service Contact Requirements

Some service types require one or more service-level contacts as part of the configuration. This method will retrieve any business rules pertaining to service contact requirements so that they can be included with an order. Service level contacts should not be confused with those that are associated with an account (i.e. primary, billing).

Get Service Identifier Requirements

This request is designed to advise of any service identifier requirements beyond service-based identifiers which are part of the SQ process. E.g. Those used for authentication purposes.

Get Service Identifier Realms

This request is designed to be gather requirements related to realms, which are an aspect of service identifiers. This will return a list of available identifier realms that are presently associated against the parent account.

Get Service Address Requirements

This request is designed to be gather any service address requirements that may pertain to the order.

SET METHODS

Set Service Configuration Requirements

Based on the requirements gathered in Get Service Configuration Requirements, this is used to configure any service configuration which is part of the service. Note: This cannot be configured until the 'Package Plan' is selected.

Set Service Feature Setup

Based on the requirements (optional or mandatory) gathered in Get Service Feature Configuration Requirements, this API call is used to configure any service features. Note: This cannot be configured until the 'Package Plan' is selected.

Set Service Contacts

Based on the requirements gathered in Get Service Contact Requirements this method will populate the service contact information that is required for an order.

Set Service Identifiers

Based on the requirements gathered in Get Service Contact Requirements this method will populate the service contact information that is required for an order.

Set Service Address

Add or update service address in the Order

  • Set Service Address

REVIEW AND SUBMIT

Get Service Address

This call is optional for an order, but may be useful to reflect back to the user what they have entered. The method retrieves any service addresses that has been collected in the order.

  • Get Service Address

Get Terms And Conditions

This call is mandatory for an order by a service provider who subscribes to the Terms and Conditions module. The method retrieves any terms and condition text blocks.

Submit (Create) Order

For the submission of an order. All information that has been previously submitted will be validated and if the order passes it will be accepted into the system. Package subscription(s), service subscription(s) and service(s) in a PreActive state will be created.

Other Useful API for Orders

While these do not directly form part of the primary workflow for an order, service providers may find the following API functions worth considering to improve the user experience with your applications.

Create Note

During the ordering process there may be reasons to put additional notes in the system against a customer.

Create Payment

The Create Payment function can collect a payment for you if you wish that to be part of the order process.