anchor.diff:  		Body :: string(),
   		Reason :: term().
   %% @doc POST SCUR rating data to a Nrf Rating Server.
  -post_request_scur({MSISDN, IMSI}, SvcContextId,
  +post_request_scur(SubscriberIds, SvcContextId,
   		SessionId, MSCC, Location, initial) ->
   	{ok, NrfUri} = application:get_env(ocs, nrf_uri),
   	Path = NrfUri ++ ?BASE_URI,
   	ServiceRating = initial_service_rating(MSCC, binary_to_list(SvcContextId), Location),
  -	post_request_scur1({MSISDN, IMSI},
  -			SessionId, ServiceRating, Path);
  -post_request_scur({MSISDN, IMSI}, SvcContextId,
  +	post_request_scur1(SubscriberIds, SessionId, ServiceRating, Path);
  +post_request_scur(SubscriberIds, SvcContextId,
   		SessionId, MSCC, Location, interim) ->
   	{ok, NrfUri} = application:get_env(ocs, nrf_uri),
   	Path = NrfUri ++ get_ref(SessionId) ++ "/" ++ "update",
   	ServiceRating = update_service_rating(MSCC, binary_to_list(SvcContextId), Location),
  -	post_request_scur1({MSISDN, IMSI},
  -			SessionId, ServiceRating, Path);
  -post_request_scur({MSISDN, IMSI}, SvcContextId,
  +	post_request_scur1(SubscriberIds, SessionId, ServiceRating, Path);
  +post_request_scur(SubscriberIds, SvcContextId,
   		SessionId, MSCC, Location, final) ->
   	{_, NrfUri} = application:get_env(ocs, nrf_uri),
   	Path = NrfUri ++ get_ref(SessionId) ++ "/" ++ "release",
   	ServiceRating = final_service_rating(MSCC, binary_to_list(SvcContextId), Location),
  -	post_request_scur1({MSISDN, IMSI},
  -			SessionId, ServiceRating, Path).
  -%% @hidden
  -post_request_scur1({MSISDN, IMSI}, SessionId, ServiceRating, Path) ->
  +	post_request_scur1(SubscriberIds, SessionId, ServiceRating, Path).
  +%% @hidden
  +post_request_scur1(SubscriberIds, SessionId, ServiceRating, Path) ->
  +	SubscriberIds1 = case SubscriberIds of
  +		{MSISDN, undefined} ->
  +			MSISDN1 = "msisdn-" ++ binary_to_list(MSISDN),
  +			{array, [MSISDN1]};
  +		{undefined, IMSI} ->
  +			IMSI1 = "imsi-" ++ binary_to_list(IMSI),
  +			{array, [IMSI1]};
  +		{MSISDN, IMSI} ->
  +			MSISDN1 = "msisdn-" ++ binary_to_list(MSISDN),
  +			IMSI1 = "imsi-" ++ binary_to_list(IMSI),
  +			{array, [MSISDN1, IMSI1]}
  +	end,
  +	post_request_scur2(SubscriberIds1, SessionId, ServiceRating, Path).
  +%% @hidden
  +post_request_scur2(SubscriberIds, SessionId, ServiceRating, Path) ->
   	{ok, Profile} = application:get_env(ocs, nrf_profile),
   	TS = erlang:system_time(?MILLISECOND),
   	InvocationTimeStamp = ocs_log:iso8601(TS),
   	Sequence = ets:update_counter(counters, nrf_seq, 1),
  -	MSISDN1 = "msisdn-" ++ binary_to_list(MSISDN),
  -	IMSI1 = "imsi-" ++ binary_to_list(IMSI),
   	Body = {struct, [{"nfConsumerIdentification",
   							{struct, [{"nodeFunctionality", "OCF"}]}},
   					{"invocationTimeStamp", InvocationTimeStamp},
   					{"invocationSequenceNumber", Sequence},
  -					{"subscriptionId", {array, [MSISDN1, IMSI1]}},
  +					{"subscriptionId", SubscriberIds},
   					{"serviceRating",
   							{array, lists:flatten(ServiceRating)}}]},
   	ContentType = "application/json",
  
positive.code: 		Body :: string(),
  		Reason :: term().
  %% @doc POST IEC rating data to a Nrf Rating Server.
  post_request_iec(Subscriber, ServiceContextId, SessionId,
  		[], _Location, Destination) ->
  	SCID = {"serviceContextId", binary_to_list(ServiceContextId)},
  	Des = {"destinationId", {array, [{struct, [{"destinationIdType", "DN"},
  			{"destinationIdData", Destination}]}]}},
  	ServiceRating = [{struct, [SCID, Des, {"requestSubType", "DEBIT"}]}],
  	post_request_iec1(Subscriber, SessionId, ServiceRating);
  post_request_iec(Subscriber, ServiceContextId, SessionId, MSCC, Location, Destination) ->
  	ServiceRating = iec_service_rating(MSCC, binary_to_list(ServiceContextId), Location, Destination),
  	post_request_iec1(Subscriber, SessionId, ServiceRating).
  %% @hidden
  post_request_iec1({MSISDN, IMSI}, SessionId, ServiceRating) ->
  	{ok, NrfUri} = application:get_env(ocs, nrf_uri),
  	{ok, Profile} = application:get_env(ocs, nrf_profile),
  	TS = erlang:system_time(?MILLISECOND),
  	InvocationTimeStamp = ocs_log:iso8601(TS),
  	Sequence = ets:update_counter(counters, nrf_seq, 1),
  	MSISDN1 = "msisdn-" ++ binary_to_list(MSISDN),
  	IMSI1 = "imsi-" ++ binary_to_list(IMSI),
  	Body = {struct, [{"nfConsumerIdentification",
  							{struct, [{"nodeFunctionality", "OCF"}]}},
  					{"oneTimeEvent", true},
  					{"oneTimeEventType", "IEC"},
  					{"invocationTimeStamp", InvocationTimeStamp},
  					{"invocationSequenceNumber", Sequence},
  					{"subscriptionId", {array, [MSISDN1, IMSI1]}},
  					{"serviceRating",
  							{array, lists:flatten(ServiceRating)}}]},
  	Path = NrfUri ++ ?BASE_URI,
  
negative.code: -spec post_request_iec(SubscriberIds, ServiceContextId,
  		SessionId, MSCC, Location, Destination) -> Result
  	when
  		SubscriberIds :: {MSISDN, IMSI},
  		MSISDN :: binary(),
  		IMSI :: binary(),
  		ServiceContextId :: binary(),
  		SessionId :: binary(),
  		MSCC :: [#'3gpp_ro_Multiple-Services-Credit-Control'{}] | [],
  