Hello
i have a delphi code for sending sms through a web service.
i use only GetCredit function in this code.
but it gives me an error.

Code:
SendSoap = interface(IInvokable) 
['{35F07DE4-77E4-9B43-028F-73006EDFAAD7}'] 
function GetCredit(const username: string; const password: string): string; stdcall; 
end; 
function GetCredit_SendSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): SendSoap; 
implementation 
uses SysUtils; 
function GetCredit_SendSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): SendSoap; 
const defWSDL ='http://panizsms.ir/post/send.asmx?wsdl';
defURL = '(URL address blocked: See forum rules)/post/send.asmx'; 
defSvc = ' Send '; 
defPrt = ' SendSoap ';
 var
 RIO: THTTPRIO; 
begin 
Result := nil;
 if (Addr = '') then 
begin 
if UseWSDL then 
Addr := defWSDL 
else Addr := defURL;
 end; 
if HTTPRIO = nil then
 RIO := THTTPRIO.Create(nil) 
else RIO := HTTPRIO; 
try 
Result := (RIO as SendSoap); 
if UseWSDL then 
begin 
RIO.WSDLLocation := Addr; 
RIO.Service := defSvc; RIO.Port := defPrt; 
end 
else RIO.URL := Addr;
 finally if (Result = nil) and (HTTPRIO = nil) then 
RIO.Free; 
end;
 end;
 initialization InvRegistry.RegisterInterface(TypeInfo(SendSoap), '(URL address blocked: See forum rules)/', 'utf-8'); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(SendSoap),'(URL address blocked: See forum rules)/%operationName%'); InvRegistry.RegisterInvokeOptions(TypeInfo(SendSoap), ioDocument); end.
error: Server did not recognize the value of HTTP Header SoapAction (URL address blocked: See forum rules)/GetCredit

i have some questions:
1-what's the cause of this error?

2-SendSoap = interface(IInvokable)
['{35F07DE4-77E4-9B43-028F-73006EDFAAD7}']

what does this code do?? is this ID unique for every web service??

3-Should i replace 'tempuri' in soap action with other value or i should use this exactly??