A Sample Notification Payloads

You can use the sample notification payloads to view the format of notifications that Oracle Communications Elastic Charging Engine (ECE) publishes into the JSM notification queue.

Topics in this document:

Aggregated Threshold Breach Event (Aggregated Based on Balance Element ID)

The payload published for an aggregated threshold breach (aggregated based on Balance Element ID) uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <AggregatedCreditThresholdBreachNotification>
     <NotificationType>AGGREGATED_THRESHOLD_BREACH_EVENT</NotificationType>
       <PublicUserIdentities>
            <PublicUserIdentity>123</PublicUserIdentity>
       </PublicUserIdentities>
     <BalanceElementId>840</BalanceElementId>
     <BalanceElementCode>USD</BalanceElementCode>
     <CurrentBalance>-3.00</CurrentBalance>
     <ThresholdAmount>[-4.5, -3.5]</ThresholdAmount>
     <ThresholdPercent>[55.0, 65.0]</ThresholdPercent>
     <BreachDirection>THRESHOLD_BREACH_UP</BreachDirection>
     <OperationType>USAGE</OperationType>
     <SubOperationType>INITIATE</SubOperationType>
    </AggregatedCreditThresholdBreachNotification>
</Notification>

Billing Event

The payload published for a billing notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <BillingNotification>
       <NotificationType>BILLING_NOTIFICATION_EVENT</NotificationType>
       <CustomerId>12345</CustomerId>
       <BillingUnitId>2345</BillingUnitId>
       <ExternalReference>1</ExternalReference>
    </BillingNotification>
</Notification>

Credit Ceiling Breach Event

The payload published for a credit limit ceiling breach uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <CreditCeilingBreachNotification>
    <NotificationType>CREDIT_CEILING_BREACH_EVENT</NotificationType>
    <BalanceElementId>840</BalanceElementId>
    <BalanceElementCode>USD</BalanceElementCode>
    <CurrentBalance>1.00</CurrentBalance>
    <CreditCeiling>0</CreditCeiling>
    <AlertType>2</AlertType>
    <Reason>0x01</Reason>
    <OperationType>USAGE</OperationType>
    <SubOperationType>INITIATE</SubOperationType>
   </CreditCeilingBreachNotification>
</Notification>

Credit Floor Breach Event

The payload published for a credit limit floor breach uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <CreditFloorBreachNotification>
    <NotificationType>CREDIT_FLOOR_BREACH_EVENT</NotificationType>
    <BalanceElementId>840</BalanceElementId>
    <BalanceElementCode>USD</BalanceElementCode>
    <CurrentBalance>-1.00</CurrentBalance>
    <CreditFloor>0</CreditFloor>
    <AlertType>2</AlertType>
    <Reason>0x01</Reason>
    <OperationType>USAGE</OperationType>
    <SubOperationType>INITIATE</SubOperationType>
   </CreditFloorBreachNotification>
</Notification>

Custom Notification for BRM Gateway

The payload published for a custom notification that is targeted for BRM Gateway uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification version="3.0.0.0.0">
<CustomNotification>
   <NotificationType>CUSTOM_EVENT_NOTIFICATION_EVENT</NotificationType>
   <OpCode>CUST_MODIFY_CUSTOMER<OpCode>
   <CustomDataMap>
      <CustomDataKey>CustomerId</CustomDataKey>
      <CustomDataValue>123</CustomDataValue>
   </CustomDataMap>
   <CustomDataMap>
      <CustomDataKey>BalanceId</CustomDataKey>
      <CustomDataValue>456</CustomDataValue>
   </CustomDataMap>
   <CustomDataMap>
      <CustomDataKey>CustomerId</CustomDataKey>
      <CustomDataValue>123</CustomDataValue>
   </CustomDataMap>
   <CustomDataMap>
      <CustomDataKey>BalanceId</CustomDataKey>
      <CustomDataValue>456</CustomDataValue>
   </CustomDataMap>
</Notification>

External Top-up Event

The payload published for a external top-up notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <ExternalTopUpNotification>
     <NotificationType>EXTERNAL_TOP_UP_NOTIFICATION_EVENT</NotificationType>
     <PublicUserIdentities>
            <PublicUserIdentity>1000000</PublicUserIdentity>
     </PublicUserIdentities>
     <CustomerId>137826171</CustomerId>
     <ExternalReference>1</ExternalReference>
     <RequestTime>1325269800000</RequestTime>
     <Id>RECHARGE_ID1</Id>
     <BalanceImpact>
       <ProductId>137826171</ProductId>
       <ProductType>VOICE</ProductType>
      <BalanceItemImpact>
      <BalanceItemId>1</BalanceItemId>
      <BalanceElementCode>FSEC</BalanceElementCode>
      <Quantity>-10</Quantity>
      <ExtendValidityFlag>false</ExtendValidityFlag>
             <ValidFrom>1325269800000</ValidFrom>
             <ValidTo>1388514600000</ValidTo>
     		        </BalanceItemImpact
            </BalanceImpact>
    <SubscriberPreferences>
 		      <SubscriberPreference PublicUserIdentity="1000001:VOICE, 1000000:VOICE">
       <SubscriberPreferencesInfo>
        <PreferenceName>Language</PreferenceName>
        <PreferenceValue>French</PreferenceValue>
      </SubscriberPreferencesInfo>
 		     </SubscriberPreference>
    </SubscriberPreferences>
 </ExternalTopUpNotification>>
</Notification>

First Usage Validity

The payload published for a first usage validity notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <FirstUsageValidityNotification>
    <NotificationType>FIRST_USAGE_VALIDITY_INIT_NOTIFICATION_EVENT</NotificationType>
    <CustomerId>12345</CustomerId>
    <ExternalReference>1</ExternalReference>
    <BalanceId>12345</BalanceId>
    <validity>
        <BalanceElementId>100025</BalanceElementId>
        <BalanceItemId>1</BalanceItemId>
        <ValidFrom>1325269800000</ValidFrom>
        <ValidTo>1388514600000</ValidTo>
    </validity>
      <SubscriberPreferences>
 		      <SubscriberPreference PublicUserIdentity="1000001:VOICE, 1000000:VOICE">
       <SubscriberPreferencesInfo>
          <PreferenceName>Language</PreferenceName>
          <PreferenceValue>French</PreferenceValue>
       </SubscriberPreferencesInfo>
 		      </SubscriberPreference>
      </SubscriberPreferences>
       </FirstUsageValidityNotification>
</Notification>

Life-Cycle Transition

The payload published for a life cycle transition notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
  <LifeCycleTransitionNotification>
     <NotificationType>LIFECYCLE_TRANSITION_NOTIFICATION_EVENT</NotificationType>
      <PublicUserIdentities>
             <PublicUserIdentity>0049100120</PublicUserIdentity>
      </PublicUserIdentities>
     <CustomerId>3135579</CustomerId>
     <ExternalReference>1</ExternalReference>
     <ProductId>3134811</ProductId>
     <ProductType>TelcoGsmTelephony</ProductType>
     <LifecycleState>103</LifecycleState>
     <ExpirationTime>1439653419867</ExpirationTime>
      <SubscriberPreferences>
      <SubscriberPreference PublicUserIdentity="316-20150813-143831-0-21484--153892112-slc06bui:TelcoGsmTelephony, 0049100120:TelcoGsmTelephony">
         <SubscriberPreferencesInfo>
            <PreferenceName>Language</PreferenceName>
            <PreferenceValue>French</PreferenceValue>
         </SubscriberPreferencesInfo>
 		       </SubscriberPreference>
      </SubscriberPreferences>
  </LifeCycleTransitionNotification>
</Notification>

Replenish POID ID Event

The payload published for a replenish POID ID notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <ReplenishPoidIdNotification>
       <NotificationType>REPLENISH_POID_ID_NOTIFICATION_EVENT</NotificationType>
       <SchemaName>1</SchemaName>
       <Quantity>10000</Quantity>
    </ReplenishPoidIdNotification>
</Notification>

Spending Limit

The payload published for a spending limit notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <SpendingLimitNotification>
       <NotificationType>SPENDING_LIMIT_NOTIFICATION</NotificationType>
       <CustomerId>340876</CustomerId>
       <PublicUserIdentities>
           <PublicUserIdentity>9986068473</PublicUserIdentity>
           <PublicUserIdentity>login123</PublicUserIdentity>
       </PublicUserIdentities>
       <BalanceElementId>840</BalanceElementId>
       <BalanceElementCode>USD</BalanceElementCode>
       <CurrentBalance>2</CurrentBalance>
       <ConsumedReservation>3</ConsumedReservation>
       <Unit>MegaBytes</Unit>   
       <Breaches>
          <OfferProfileName>Offer1</OfferProfileName>
          <LabelName>Fair Usage</LabelName>
          <StatusLabel>low qos</StatusLabel>
          <DeltaToNextThreshold>8</DeltaToNextThreshold>
       </Breaches>
       <DuplicateEvent>True</DuplicateEvent>
   </SpendingLimitNotification>
</Notification>

Subscriber Preference Event

The payload published for creating a subscriber preference notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <CreateSubscriberPreference>
     <NotificationType>SUBSCRIBER_PREFERENCE_NOTIFICATION_EVENT</NotificationType>
     <CustomerId>340876</CustomerId>
     <ProductInfo>
      <ProductId>12345</ProductId>
      <PublicUserIdentities>
       <PublicUserIdentity>9886753556</PublicUserIdentity>
       <PublicUserIdentity>login</PublicUserIdentity>
      </PublicUserIdentities>
     </ProductInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Language</PreferenceName>
      <PreferenceValue>English</PreferenceValue>
     </SubscriberPreferencesInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Channel</PreferenceName>
      <PreferenceValue>Email</PreferenceValue>
     </SubscriberPreferencesInfo>
    </CreateSubscriberPreference> 
</Notification>

The payload published for modifying a subscriber preference notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <ModifySubscriberPreference>
     <NotificationType>SUBSCRIBER_PREFERENCE_NOTIFICATION_EVENT</NotificationType>
     <CustomerId>customer1</CustomerId>
     <ProductInfo>
      <ProductId>12345</ProductId>
      <PublicUserIdentities>
       <PublicUserIdentity>9886753556</PublicUserIdentity>
       <PublicUserIdentity>login</PublicUserIdentity>
      </PublicUserIdentities>
     </ProductInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Language</PreferenceName>
      <PreferenceValue>English</PreferenceValue>
     </SubscriberPreferencesInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Channel</PreferenceName>
      <PreferenceValue>Email</PreferenceValue>
     </SubscriberPreferencesInfo>
    </ModifySubscriberPreference>
</Notification>

The payload published for deleting a subscriber preference notification uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <DeleteSubscriberPreference>
     <NotificationType>SUBSCRIBER_PREFERENCE_NOTIFICATION_EVENT</NotificationType>
     <CustomerId>customer1</CustomerId>
     <ProductInfo>
      <ProductId>12345</ProductId>
      <PublicUserIdentities>
       <PublicUserIdentity>9886753556</PublicUserIdentity>
       <PublicUserIdentity>login</PublicUserIdentity>
      </PublicUserIdentities>
     </ProductInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Language</PreferenceName>
      <PreferenceValue>English</PreferenceValue>
     </SubscriberPreferencesInfo>
     <SubscriberPreferencesInfo>
      <PreferenceName>Channel</PreferenceName>
      <PreferenceValue>Email</PreferenceValue>
     </SubscriberPreferencesInfo>
    </DeleteSubscriberPreference> 
</Notification>

Threshold Breach Event (Breach Direction Down)

The payload published for a threshold breach (breach direction up) uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <CreditThresholdBreachNotification>
    <NotificationType>THRESHOLD_BREACH_EVENT</NotificationType>
<PublicUserIdentities>
    <PublicUserIdentity>123</PublicUserIdentity></PublicUserIdentities>
    <BalanceElementId>840</BalanceElementId>
    <BalanceElementCode>USD</BalanceElementCode>
    <CurrentBalance>-4.00</CurrentBalance>
    <ThresholdAmount>-4.5</ThresholdAmount>
    <ThresholdPercent>55.0</ThresholdPercent>
    <BreachDirection>THRESHOLD_BREACH_UP</BreachDirection>
    <AlertType>2</AlertType>
    <Reason>0x01</Reason>
    <OperationType>USAGE</OperationType>
    <SubOperationType>INITIATE</SubOperationType>
    </CreditThresholdBreachNotification>
</Notification>

Threshold Breach Event (Breach Direction Up)

The payload published for a threshold breach (breach direction up) uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <CreditThresholdBreachNotification>
    <NotificationType>THRESHOLD_BREACH_EVENT</NotificationType>
    <BalanceElementId>840</BalanceElementId>
    <BalanceElementCode>USD</BalanceElementCode>
    <CurrentBalance>-4.00</CurrentBalance>
    <ThresholdAmount>-4.5</ThresholdAmount>
    <ThresholdPercent>55.0</ThresholdPercent>
    <BreachDirection>THRESHOLD_BREACH_UP</BreachDirection>
    </CreditThresholdBreachNotification>
</Notification>

Top-up Event

The payload published for a top-up uses the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Notification>
    <RARNotification>
       <NotificationType>TOP_UP_NOTIFICATION_EVENT</NotificationType>
       <PublicUserIdentities>
            <PublicUserIdentity>123</PublicUserIdentity>
            <PublicUserIdentity>456</PublicUserIdentity>
       </PublicUserIdentities>
       <ActiveSessions>
            <ActiveSessionId>SESSION1</ActiveSessionId>
            <ActiveSessionId>SESSION2</ActiveSessionId>
       </ActiveSessions>
       <ProductType>VOICE</ProductType>
       <ProductId>test</ProductId>
       <CustomerId>12345</CustomerId>
       <DuplicateEvent>True</DuplicateEvent>
    </RARNotification>
</Notification>

Enriched Notification

The payload published for a custom enriched notification with the customDataMap populated with attributes like original balance, current balance, event timestamp, etc:
[ThresholdBreachServiceEventImpl{ balanceId='BALANCE', beCode='USD', beId=840,
      currentBalance=-179.00, thresholdAmount=-180, publicUserIdentities='[6500000001]',
      thresholdPercentage=10.0, breachDirection='THRESHOLD_BREACH_UP', alertType='2', reason='0x01',
      validityUpdateOnly='false', customerId='CUSTOMER', eventTimeStamp='2024-01-17T08:50:17.096Z',
      operationType='USAGE',
      subOperationType='UPDATE'[ExternalNotifiableServiceEventImpl{sessionId='null',
      clientRoutingData=null[ThresholdBreachServiceEventImpl{serviceEventId=null,
      serviceEventType=THRESHOLD_BREACH_EVENT, notificationVersion=7.0.0.0.0,
      customDataMap={OriginalBalance=UnitValue{quantity=0, unit=Occ}, CalledNumber=650000002,
      NotificationType=THRESHOLD_BREACH_EVENT, CurrentBalance=UnitValue{quantity=-50.0, unit=Occ},
      EventTimeStamp=2024-01-17T08:50:17.096Z, ExtensionThresholdKey1=ExtensionThresholdValue1,
      CustomerId=CUSTOMER, SessionId=SESSION ID, BalanceId=BALANCE, CallingNumber=6500000001},
      puidPrefMap={}}]'}]'}]