anchor.diff:  -define(ATTACHMENT, <<"attachment">>).
   -define(GENERATE, <<"generate">>).
   -define(CARRIERS, <<"carriers">>).
  +-define(CUSTOMERS, <<"customers">>).
  +-define(SERVICE_PLANS, <<"onbill_service_plans">>).
   -define(MODB, <<"onbills_modb">>).
   -define(RESELLER_VARIABLES, <<"onbill_reseller_variables">>).
   -define(NOTIFICATION_MIME_TYPES, [{<<"text">>, <<"html">>}
  
positive.code: 
  -spec save_onbill(ne_binary(), cb_context:context()) -> cb_context:context().
  save_onbill(Id, Context) ->
      ReqData = kz_json:delete_key(<<"id">>, cb_context:req_data(Context)),
      Doc = case kz_datamgr:open_doc(<<"onbill">>, Id) of
                {'ok', JObj} -> JObj;
                {error,not_found} -> kz_json:new()
            end,
      Values = props:filter_undefined([{<<"_id">>, Id}
                                      ,{<<"_rev">>, kz_json:get_value(<<"_rev">>, Doc)}
                                      ,{<<"_attachments">>, kz_json:get_value(<<"_attachments">>, Doc)}
                                      ]),
      NewDoc = kz_json:set_values(Values, ReqData),
      Context1 = cb_context:set_doc(Context, NewDoc),
      crossbar_doc:save(cb_context:set_account_db(Context1, <<"onbill">>)).
  
  -spec onbills_modb_summary(cb_context:context()) -> cb_context:context().
  onbills_modb_summary(Context) ->
  
negative.code: resource_exists() -> 'true'.
  resource_exists(_) -> 'true'.
  resource_exists(?CARRIERS,_) -> 'true';
  resource_exists(?CUSTOMERS,_) -> 'true';
  resource_exists(?SERVICE_PLANS,_) -> 'true';
  resource_exists(?MODB,_) -> 'true'.
  resource_exists(?CARRIERS,_,_) -> 'true';
  resource_exists(?MODB,_,?ATTACHMENT) -> 'true'.
  