dxp-ux

(0 reviews)

Product-Inventory

listProduct [GET]
  1. The listProduct API is used to retrieve a list of purchased products and Subscriber status for LCPR.
  2. This operation allows to fetch the entitlement report from bango for PA.

URL

https://[localhost]:[port]/dxp-ux/v1/{businessId}/product

URL Parameter

NameTypeDescriptionrequired
businessIdstring2 letter ISO 3166 country code (TT, BB, JM, PA, PR etc.) identifying the business unitY(PR, PA)

Headers

NameTypeDescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)
X-Correlation-IDstringAn identifier for the current call chain that can be used to tie together log entries on multiple layers (e.g. client, server, mainframe). This identifier must be designed to be unique across all applications. Note - Mule default behavior creates a sample x-correlation-id field if value is not passed from client, API will use this value in case value is not passed in API requestN(PR), Y(PA)
client_idstringThe client_id identifying the channel.Y (PR,PA)
client_secretstringPassword associated with the client_id.Y (PR,PA)
lobstringThe Line of Business Identifier currently available are: PREPAID POSTPAIDY(PR), N/A(PA)
channelIdstringChannel to business: In this case, expected channelId will be: APP (SuperApp), Qpay (RT2) Note - 'channelId' is mandatory for Mobile projectY(PR), N/A(PA)
targetSystemStringThis describes the end system. “Matrixx” is in scope.Y(PR), N/A(PA)

Query Parameter

nametypedescriptionrequired
publicIdentifierstringPublic identifier value of a product, like MSISDN Example:7095659489, Subscription Id Example:S-89194 Note - 'publicIdentifier' is mandatory for Mobile projectY(PR), N/A(PA)
publicIdentifierTypestringPublic identifier type value. Aallowed values are MSISDN and SubscriptionId. Note - 'publicIdentifierType' is mandatory for Mobile projectY(PR), N/A(PA)
@typestringType of Product
Note for PA: Value should be always "OTT"
Y(PA),N/A(PR)
billingAccount.idstringUnique identifier of the entityY(PA),N/A(PR)
statusstringstatus of product, can be used to filter report by status
Possible Values are: active, cancelled,aborted, suspended ,pendingActive
N(PA),N/A(PR)
productSpecification.idstringUnique product IDN(PA),N/A(PR)

Data Model - Response

nametypedescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A, conditionallyMandatory-C/M)
idstringExternal ID of the subscription.N(PR), Y(PA)
namestringDescriptive name of subscription.N(PR),N/A(PA)
descriptionstringIs the description of the response. Hard coded as static in Mule API.N(PR),N/A(PA)
statusstringStatus of the subscription.Example: - created - pendingActive - cancelled - active - pendingTerminate - terminated -suspended - abortedN(PR), Y(PA)
@typestringThe actual type of an response, @type as SubscriptionN(PR ,PA)
orderDatedatetimeDate when the product was orderedN(PA),N/A(PR)
startDatedatetimeDate from which the product startsN(PA),N/A(PR)
terminationDatedatetimeDate when the product was terminatedN(PA),N/A(PR)
productCharacteristicarrayDescribes a given characteristic of an object or entity through a name/value pair.N(PR,PA)
productCharacteristic.namestringName of the characteristicN(PR,PA)
productCharacteristic.valueanyThe value of the characteristicN(PR,PA)
productCharacteristic.valueTypestringData type of the value of the characteristicN(PR),N/A(PA)
relatedPartyarrayUsed to provide information about any other entity with relation to the operationN(PR),N/A(PA)
relatedParty.idstringSubscription User unique Id at MatrixxN(PR),N/A(PA)
relatedParty.rolestringthe role of subscription userN(PR),N/A(PA)
relatedParty.@typestringReference of subscription userN(PR),N/A(PA)
productarrayN(PR),N/A(PA)
product.idstringUnique identifier for this offer (within subscriber/group).N(PR),N/A(PA)
product.namestringExternal ID of product offer in pricing DB.N(PR),N/A(PA)
product.statusstringThe offer status.N(PR),N/A(PA)
product.startDatedatetimeWhen the offer was activated. Not set if status is pre-active. If active at purchase time, ActivationTime and PurchaseTime have the same value.N(PR),N/A(PA)
product.orderDatedatetimeWhen the offer was purchased.N(PR),N/A(PA)
product.@typestringtype of product/offerN(PR),N/A(PA)
product.productOfferingobjectA EntityRef is a detailed description of a bill structure.N(PR),N/A(PA)
product.productOffering.idstringExternal ID of catalog item in pricing DB, if associated with a catalog item. I.e., not for purchased offers which are part of a bundle.N(PR),N/A(PA)
product.productOffering.@typestring'When sub-classing, this defines the sub-class entity name'N(PR),N/A(PA)
product.productTermarrayN(PR),N/A(PA)
product.productTerm.namestringUnique identifier for the purchased item cycle period.N(PR),N/A(PA)
product.productTerm.durationobjectDuration of the productTermN(PR),N/A(PA)
product.productTerm.duration.amountnumberNumber of periods in a purchased item cycle.N(PR),N/A(PA)
product.productTerm.duration.unitsstringThe period type. 1=Hourly, 2=Daily, 3=Weekly, 4=Monthly, 5=Yearly, 6=Minutes"N(PR),N/A(PA)
product.productTerm.validForobjectproductTerm validity periodN(PR),N/A(PA)
product.productTerm.validFor.startDateTimedatetimeStart of current cycle period (latest period for which recurring processing has been attempted).N(PR),N/A(PA)
product.productTerm.validFor.endDateTimedatetimeEnd of current cycle period (latest period for which recurring processing has been attempted).N(PR),N/A(PA)
product.productTerm.@typestringReference of productTermN(PR),N/A(PA)
product.productPricearrayList of product pricesN(PR),N/A(PA)
product.productPrice.productOfferingPriceobjectA EntityRef is a detailed description of a bill structure.N(PR),N/A(PA)
product.productPrice.productOfferingPrice.idstringID of product offer in pricing DB.N(PR),N/A(PA)
product.productPrice.productOfferingPrice.@typestringReference of ProductOfferingPriceN(PR),N/A(PA)
product.productCharacteristicarrayDescribes a given characteristic of an object or entity through a name/value pair.N(PR),N/A(PA)
product.productCharacteristic.namestringName of the characteristicN(PR),N/A(PA)
product.productCharacteristic.valueanyThe value of the characteristicN(PR),N/A(PA)
product.productCharacteristic.valueTypestringData type of the value of the characteristicN(PR),N/A(PA)
product.productRelationshiparrayA list of product relationshipsN(PR),N/A(PA)
product.productRelationship.relationshipTypestringName of the relationshipType as "Parent"N(PR),N/A(PA)
product.productRelationship.productobjectList of child products associated with parent productN(PR),N/A(PA)
product.productRelationship.product.idstringIf this purchased offer was purchased as part of a bundle, this field holds the resource ID of the bundle. Otherwise the value is zero (null).N(PR),N/A(PA)
product.productSpecificationobjectA product specification referenceN(PR),N/A(PA)
product.productSpecification.idstringCommercial Plan CodeN(PR),N/A(PA)
product.productSpecification.namestringCommercial Plan NameN(PR),N/A(PA)
product.productSpecification.@typestringProduct specification typeN(PR),N/A(PA)
productSpecificationobjectA product specification referenceY(PA),N/A(PR)
productSpecification.idstringUnique identifier of a related entityY(PA),N/A(PR)
productSpecification.namestringName of the related entityN(PA),N/A(PR)
@baseTypestringWhen sub-classing, this defines the super-classN(PA),N/A(PR)
@referredTypestringReference of the productN(PA),N/A(PR)
billingAccountstringbillingAccount ReferenceY(PA), N/A(PR)
billingAccount.idstringbillingAccount numberY(PA), N/A(PR)
productCharacteristic subResource - Data Model
nametypeDescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)examples
LastActivityTimestringThis value is used for determining lifecycle inactivity trigger(s). It represents the maximum of the LastActivityUpdateTime of the subscriber and the LastActivityUpdateTime for all of the associated devices unless excluding device activity for current status definition. This field is only updated by eligible activity while in a lifecycle state which features inactivity condition(s), when transitioning status, or when the LastActivityUpdateTime is explicitly modified.N(PR),N/A(PA)PR:
{
"name": "LastActivityTime",
"value": "2022-03-22T13:27:06.000000Z"
}
CurrentStatusTransitionTimestringThe time at which the subscription transitioned to the current status.N(PR),N/A(PA)PR:
{
"name": "CurrentStatusTransitionTime",
"value": "2022-03-22T13:27:06.000000-04:00"
}
UserCountstringNumber of users for this subscription.N(PR),N/A(PA)PR:
{
"name": "UserCount",
"value": "1"
}
statusIdstringstatus IdN(PR),N/A(PA)PR:
{
"name": "statusId",
"value": "1"
}
LLASubTypestringLLA SubTypeN(PR),N/A(PA)PR:
{
"name": "LLASubType",
"value": "1"
}
activationCodestringActivation code of the productN(PA),N/A(PR)PA:
{
"name": "activationCode",
"value": "270158ed-6b82-4f29-9953"
}
product.productCharacteristic subResource - Data Model
NametypeDescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)examples
CurrentStatusTransitionTimestringThe time at which the subscription transitioned to the current status.N(PR),N/A(PA){
"name": "CurrentStatusTransitionTime",
"value": "2022-03-22T09:27:06.000000-04:00"
}
CycleModifyAllowedstringIf true, the cycle is configured to allow for modification.N(PR),N/A(PA){
"name": "CycleModifyAllowed",
"value": "false"
}
OfferStatusDescriptionstringStatus description of the purchased offer.N(PR),N/A(PA){
"name": "OfferStatusDescription",
"value": "active"
}
CatalogItemIdstringCatalog item ID in pricing DB, if associated with a catalog item. I.e., not for purchased offers which are part of a bundle.N(PR),N/A(PA){
"name": "CatalogItemId",
"value": "39"
}
OfferTypestringType of purchased offer. 1 = purchased_offer, 2 = purchased_bundle, 3 = bundle_purchased_offer Note - Mule API is doing logic, based on description making integer as string and passing to SF.N(PR),N/A(PA){
"name": "OfferType",
"value": "purchased_bundle"
}
PrimaryBalanceResourceIdstringResource ID of primary balance.N(PR),N/A(PA){
"name": "PrimaryBalanceResourceId",
"value": "1"
}
AvailableAmountstringThe amount available to use based on the current active balance value.N(PR),N/A(PA){
"name": "AvailableAmount",
"value": 637.14
}
BalanceResourceIdstringResource IdN(PR),N/A(PA){
"name": "BalanceResourceId",
"value": 1
}
Key considerations
PA Implementation (bango usecase)::
  1. ‘@type’ queryParam should always be “OTT”.
  2. Possible values for 'status' queryParam are active, cancelled,aborted, suspended,pendingActive.
  3. Possible status from in the response from Bango are below mentioned
BSS StatusESB StatusDescription
ACTIVEactiveThe entitlement has been successfully activated
CANCELLEDcancelledThe entitlement has been cancelled.
REVOKEDabortedThe entitlement has been revoked. This usually happens on fraud and user contract termination cases
SUSPENDEDsuspendedThe entitlement has been suspended
PENDINGpendingActiveThe entitlement has been initiated, but the user has not yet finalized the activation process
FAILEDFAILEDThe entitlement failed
PR Implementation::

For LCPR prepaid customers

  • API returns all products/subscriptions along with status.
  • We can use this API to check if the customer number(MSISDN) is active or not. In response, if payload[x].@type=subscription and payload[x].status=Active it means MSISDN is active.
Possible Error Scenarios for PA:
IF WE ARE PASSING INVALID (@type) IN QUERYPARAMS
{
    "errors": [
        {
            "code": 400,
            "message": "VALIDATION:INVALID_BOOLEAN",
            "description": "Mandatory field @type is not specified or Incorrect value is received. The expected value is OTT"
        }
    ]
}
Possible Error Scenarios for PR:
IF WE ARE PASSING INVALID (publicIdentifier) IN QUERYPARAMS
{
    "errors": [
        {
            "code": 400,
            "message": "MATRIXX:PRODUCTINVENTORY_REPORT",
            "description": "11 | Subscriber not found (AccessNumber=8919414206)"
        }
    ]
}
IF WE ARE PASSING INVALID (publicIdentifierType) IN QUERYPARAMS
{
    "errors": [
        {
            "code": 400,
            "message": "VALIDATION:MISMATCH",
            "description": "PublicIdentifierType is not valid. Expected values are : SubscriptionId | MSISDN"
        }
    ]
}
IF WE ARE PASSING INVALID CHANNELID
{
    "errors": [
        {
            "code": 501,
            "message": "LLA:NOT_IMPLEMENTED",
            "description": "There is no Implementation available for this BU"
        }
    ]
}
IF WE ARE PASSING INVALID SECURITY HEADERS
{
    "error": "Invalid Client"
}

Reviews