anchor.diff:  rate(_, _, _, _, _, _, _, _, [], Acc1, Acc2, ResultCode, Rated) ->
   	{{lists:reverse(Acc1), ResultCode, Rated}, Acc2}.
   
  --spec charge(Subscriber, ServiceRating, PLA, SessionId, Flag) -> Result
  -	when
  -		Subscriber :: binary(),
  +-spec charge(Subscribers, ServiceRating, PLA, SessionId, Flag) -> Result
  +	when
  +		Subscribers :: [Subscriber],
  +		Subscriber :: {IdType, Id},
  +		IdType :: imsi | msisdn | nai | sip | private,
  +		Id :: binary(),
   		ServiceRating :: [map()],
   		PLA :: [map()],
   		Flag :: initial | interim | final | event,
  
positive.code: 								{module, ?MODULE}, {error, Reason2},
  								{origin_host, OHost}, {origin_realm, ORealm},
  								{type, accounting_event_type(RequestType)},
  								{subscriber, Subscriber}, {address, Address},
  								{direction, Direction}, {amounts, Amounts}]),
  						Reply = diameter_error(SessionId,
  								?'DIAMETER_CC_APP_RESULT-CODE_RATING_FAILED',
  
negative.code: 						{module, ?MODULE}, {error, Reason2},
  						{origin_host, OHost}, {origin_realm, ORealm},
  						{type, accounting_event_type(RequestType)},
  						{subscriber, Subscribers}, {address, Address},
  						{direction, Direction}, {amounts, Amounts}]),
  				Reply = diameter_error(SessionId,
  						?'DIAMETER_CC_APP_RESULT-CODE_RATING_FAILED',
  