anchor.diff:  				end,
   				MSCC5 = MSCC4#'3gpp_ro_Multiple-Services-Credit-Control'{'Result-Code' = [RC]},
   				lists:reverse(T1) ++ [MSCC5] ++ Acc;
  -			F(#{"ratingGroup" := RG, "resultCode" := RC} = ServiceRating,
  +			F(#{ratingGroup := RG, resultCode := RC} = ServiceRating,
   					[#'3gpp_ro_Multiple-Services-Credit-Control'
   							{'Service-Identifier' = [], 'Rating-Group' = [RG]} = MSCC1 | T1], Acc) ->
  -				MSCC2 = case catch maps:get("grantedUnit", ServiceRating) of
  +				MSCC2 = case catch maps:get(grantedUnit, ServiceRating) of
   					#'3gpp_ro_Granted-Service-Unit'{} = GrantedUnits ->
   						MSCC1#'3gpp_ro_Multiple-Services-Credit-Control'{'Granted-Service-Unit' = [GrantedUnits]};
   					_ ->
   						MSCC1
   				end,
  -				MSCC3 = case catch maps:get("consumedUnit", ServiceRating) of
  +				MSCC3 = case catch maps:get(consumedUnit, ServiceRating) of
   					#'3gpp_ro_Used-Service-Unit'{} = UsedUnits ->
   						MSCC2#'3gpp_ro_Multiple-Services-Credit-Control'{'Used-Service-Unit' = [UsedUnits]};
   					_ ->
   						MSCC2
   				end,
  -				MSCC4 = case catch maps:get("finalUnitIndication", ServiceRating) of
  +				MSCC4 = case catch maps:get(finalUnitIndication, ServiceRating) of
   					[#'3gpp_ro_Final-Unit-Indication'{}] = FUI ->
   						MSCC3#'3gpp_ro_Multiple-Services-Credit-Control'{'Final-Unit-Indication' = FUI};
   					_ ->
  
positive.code: charge([{_, Subscriber} | _], SessionId, Flag, Prices) ->
  	charge1(Subscriber, SessionId, Flag, Prices, [], undefined).
  %% @hidden
  charge1(Subscriber, SessionId, Flag, [#{"rg" := RG, "si" := SI, "currency" := Currency,
  		"units" := Units, "unitSize" := UnitSize, "unitPrice" := UnitPrice, "debits" := Debits,
  		"reserves" := Reserves} | T], Acc, ResultCode1) ->
  	case ocs_rating:charge(diameter, Subscriber, SI,
  			UnitSize, Units, Currency, UnitPrice, undefined,
  			RG, Flag, Debits,
  			Reserves, [{'Session-Id', SessionId}]) of
  		{ok, _, {_, Amount} = GrantedAmount} when Amount > 0 ->
  			ResultCode2 = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
  			MSCC = #{"grantedUnit" => granted_unit(GrantedAmount),
  					"serviceId" => SI, "ratingGroup" => RG,
  					"resultCode" => ResultCode2},
  			charge1(Subscriber, SessionId, Flag, T, [MSCC | Acc], ResultCode2);
  		{ok, _, {_, 0} = _GrantedAmount} ->
  			ResultCode2 = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
  			charge1(Subscriber, SessionId, Flag, T, Acc, ResultCode2);
  		{ok, _, {_, Amount} = GrantedAmount, _} when Amount > 0 ->
  			ResultCode2 = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
  			MSCC = #{"grantedUnit" => granted_unit(GrantedAmount),
  					"serviceId" => SI, "ratingGroup" => RG,
  					"resultCode" => ResultCode2},
  			charge1(Subscriber, SessionId, Flag, T, [MSCC | Acc], ResultCode2);
  		{ok, #service{}, _} ->
  			ResultCode2 = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
  
negative.code: 		Reason :: term().
  %% @doc POST ECUR rating data to a Nrf Rating Server.
  post_request_ecur(_ServiceName, SubscriberIds, SvcContextId,
  		SessionId, [#{price := #price{type = #pla_ref{href = Path}}}
        | _], Amounts, Location, Destination, {initial, a}) ->
  	ServiceRating = initial_service_rating(SubscriberIds, Amounts, binary_to_list(SvcContextId),
  			Location, Destination, a),
  