INVALID_LOGIN_CREDENTIALS error on NetSuite, but correct credentials - netsuite

I've been trying to use the NetSuite api for sometime using the netsuite gem.
I can login to the website, but when I try to authenticate from the API I get an INVALID_LOGIN_CREDENTIALS error.
This is the payload of the request:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:platformMsgs="urn:messages_2011_1.platform.webservices.netsuite.com" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:platformCore="urn:core_2011_1.platform.webservices.netsuite.com">
<env:Header>
<platformMsgs:passport>
<platformCore:email>email#email.com</platformCore:email>
<platformCore:password>--snip--</platformCore:password>
<platformCore:account>ACCOUNTNO</platformCore:account>
<platformCore:role type="role" internalId="ROLE"/>
</platformMsgs:passport>
</env:Header>
<env:Body>
<platformMsgs:get>
<platformMsgs:baseRef xsi:type="platformCore:RecordRef" internalId="4" type="customer"/>
</platformMsgs:get>
</env:Body>
</env:Envelope>
This is the payload of the response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>You have entered an invalid email address or account number. Please try again.</faultstring>
<detail>
<platformFaults:invalidCredentialsFault xmlns:platformFaults="urn:faults_2011_1.platform.webservices.netsuite.com">
<platformFaults:code>INVALID_LOGIN_CREDENTIALS</platformFaults:code>
<platformFaults:message>You have entered an invalid email address or account number. Please try again.</platformFaults:message>
</platformFaults:invalidCredentialsFault>
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">sb-partners-java002.svale.netledger.com</ns1:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

I've just solved the issue. If you're having trouble make sure that:
You are connecting to the right environment. (non-sandbox vs sandbox)
Your user (or your role) have WebServices permission (see in Permissions > Setup)
I faced both of the issues. My account, even belonging to an Administrator role, lacked Web Services permission. And I was using the sandbox url to a non-sandbox account.
https://webservices.na1.netsuite.com/wsdl/v2012_1_0/netsuite.wsdl (non-sandbox)
https://webservices.sandbox.netsuite.com/wsdl/v2012_1_0/netsuite.wsdl (sandbox)

Another possible cause of this issue is if the password contains + or % characters. Removing these from the password fixed this for me.

Related

Can't remove email address from EWS contact

I'm using the ews-javascript-api to manage my EWS contacts on an exchange server.
I'm trying to update a contact object by removing an email address.
I've followed this blog post and it's got me most of the way there. However, when I remove the ExtendedProperty's for EmailAddress1 the ews-javascript-api throws an exception due to an HTTP 500 coming back from the EWS soap request to update a contact. Looking at the SOAP request, I can see that there is an empty FieldURI which is what the response error is complaining about.
Here is my soap request
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010_SP2"></t:RequestServerVersion>
</soap:Header>
<soap:Body>
<m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve">
<m:ItemChanges>
<t:ItemChange>
<t:ItemId Id="AAMkADczNzM2MTM4LTZmNWItNDBhYy05ZjcwLWUxMDc3ZDY2NjFiMABGAAAAAAC3bTmWRbrTRqYt+VZXGp68BwD5r6sZ7j5YSprMfvM2gaMkAAAAAAAQAAD5r6sZ7j5YSprMfvM2gaMkAAB4CjURAAA=" ChangeKey="EQAAABYAAAD5r6sZ7j5YSprMfvM2gaMkAAB4CkS4"></t:ItemId>
<t:Updates>
<t:SetItemField>
<t:FieldURI FieldURI="contacts:DisplayName"></t:FieldURI>
<t:Contact>
<t:DisplayName>Craig </t:DisplayName>
</t:Contact>
</t:SetItemField>
<t:SetItemField>
<t:FieldURI FieldURI="contacts:GivenName"></t:FieldURI>
<t:Contact>
<t:GivenName>Craig</t:GivenName>
</t:Contact>
</t:SetItemField>
<t:DeleteItemField>
<t:FieldURI></t:FieldURI>
</t:DeleteItemField>
<t:DeleteItemField>
<t:FieldURI FieldURI="contacts:MiddleName"></t:FieldURI>
</t:DeleteItemField>
<t:DeleteItemField>
<t:FieldURI FieldURI="contacts:Surname"></t:FieldURI>
</t:DeleteItemField>
</t:Updates>
</t:ItemChange>
</m:ItemChanges>
</m:UpdateItem>
</soap:Body>
And here is the soap response
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode
xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorSchemaValidation
</faultcode>
<faultstring xml:lang="en-US">The request failed schema validation: The required attribute 'FieldURI' is missing.</faultstring>
<detail>
<e:ResponseCode
xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorSchemaValidation
</e:ResponseCode>
<e:Message
xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">The request failed schema validation.
</e:Message>
<t:MessageXml
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<t:LineNumber>1</t:LineNumber>
<t:LinePosition>1037</t:LinePosition>
<t:Violation>The required attribute 'FieldURI' is missing.</t:Violation>
</t:MessageXml>
</detail>
</s:Fault>
</s:Body>
And finally here is the exception that the javascript api throws.
"Exception
at UpdateItemRequest../node_modules/ews-javascript-api/js/Core/Requests/ServiceRequestBase.js.ServiceRequestBase.ProcessWebException (https://sr1.genband.com/genlync/bundle-electron.js:44707:36)
at https://sr1.genband.com/genlync/bundle-electron.js:45557:41
at <anonymous>"
Finally I'll mention that I can remove an email address without removing any extended properties with the following function.
response.EmailAddresses._setItem(ews.EmailAddressKey.EmailAddress1, address.value);
However, the problem with this is, while it looks like it works, if I try to edit that contact on my outlook web interface, I get an error about some property mismatch. Looks like if I don't remove those extended properties when deleting an email, then they stay around and cause issues for other clients.
this should work in 0.9.3 version, available starting 0.9.3-dev.1 which is ews-javascript-api#next currently.

Activesync mark mail as read

I am developing an application which uses activesync protocol.
To mark mail as read i am using Sync command and below is my request
<?xml version="1.0" encoding="utf-8" ?>
<Sync xmlns:email="Email" xmlns:tasks="Tasks" xmlns="AirSync">
<Collections>
<Collection>
<SyncKey>42496781</SyncKey>
<CollectionId>5</CollectionId>
<DeletesAsMoves>1</DeletesAsMoves>
<GetChanges>0</GetChanges>
<WindowSize>512</WindowSize>
<Commands>
<Change>
<ServerId>5:31</ServerId>
<ApplicationData>
<email:Read>1</email:Read>
</ApplicationData>
</Change>
</Commands>
</Collection>
</Collections>
</Sync>
Above works well with hosted account but for non hosted account it is not working. For non hosted account some times i am getting status error 8 or 3.
Status errors for Sync command are here:
https://msdn.microsoft.com/en-us/library/gg675457(v=exchg.80).aspx
3 = Invalid synchronization key.
8 = Object not found.

Netsuite No Web Services Permission

I'm currently fighting with Netsuite's API and for the past while was getting somewhere, until quite randomly my user was no longer able to log in at all (WebFault: Server raised fault: 'You do not have permission to access web services feature.'). Is there a hidden max API calls/hour that I've hit? I've gone through and checked all 3 relevant places for web services (Company, role, and user is in role). Can anyone shed some light on this (quite frankly nightmare of an) api?
DEBUG:suds.client:sending to (https://webservices.netsuite.com/services/NetSuitePort_2014_1)
message:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="urn:core_2014_1.platform.webservices.netsuite.com" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn:messages_2014_1.platform.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns2:login>
<ns2:passport>
<ns0:email>*********</ns0:email>
<ns0:password>*******</ns0:password>
<ns0:account>********</ns0:account>
<ns0:role>******</ns0:role>
</ns2:passport>
</ns2:login>
</ns1:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:headers = {'SOAPAction': u'"login"', 'Content-Type': 'text/xml; charset=utf-8'}
ERROR:suds.client:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="urn:core_2014_1.platform.webservices.netsuite.com" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn:messages_2014_1.platform.webservices.netsuite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns2:login>
<ns2:passport>
<ns0:email>***************</ns0:email>
<ns0:password>*********</ns0:password>
<ns0:account>********</ns0:account>
<ns0:role>*********</ns0:role>
</ns2:passport>
</ns2:login>
</ns1:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:http failed:
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>You do not have permission to access web services feature.</faultstring><detail><platformFaults:insufficientPermissionFault xmlns:platformFaults="urn:faults_2014_1.platform.webservices.netsuite.com"><platformFaults:code>WS_PERMISSION_REQD</platformFaults:code><platformFaults:message>You do not have permission to access web services feature.</platformFaults:message></platformFaults:insufficientPermissionFault><ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">partners-java026.svale.netledger.com</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
I was successfully logging in and out, as well as accessing the getServerTime() method when it blew up on me, and I haven't been able to log in since.
Thanks in advance.
Check-list:
Under Roles
1) Web Services Only Role checked
2) Check that they have the web services permission
Employee
1) check that they have the role and the password is correct
2) Concurrent Web Services User is checked
RE: You Max Calls per Hour Question.
No that is not the case. A Normal Netsuite User is allowed to process 1 API request at any one time, if a second is submitted while the first is still processing it will be rejected with an exception.
You can upgrade your user to a 'Suite Plus' License to achieve 10 concurrent requests for many £££££
Take a look at the user's Role. Go to the Permissions>Setup and make sure Web Services is listed. If not, add it and save.

DocuSign SOAP Api exception “This Account lacks sufficient permissions”

I created demo account on docusign demo site some days ago and I have the same problem "This Account lacks sufficient permissions" DocuSign.
Could you guys help me out of this? I really appreciate your help.
Update SOAP trace:
CreateAndSendEnvelope request
<MessageLogTraceRecord>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://www.docusign.net/API/3.0/CreateAndSendEnvelope</Action>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CreateAndSendEnvelope xmlns="http://www.docusign.net/API/3.0">
<Envelope>
<AccountId>5b119284-64fd-4f85-877c-8825b2e73bc1</AccountId>
<Documents>
<Document>
<ID>1</ID>
<Name>a2a7b1a3efd6416ab00742a72cd00b97_DOCUSIGN_DATA.pdf</Name>
<PDFBytes></PDFBytes>
</Document>
</Documents>
<Recipients>
<Recipient>
<ID>1</ID>
<UserName>TEST 1 LAST</UserName>
<Email>TRUNGNGUYEN#INTERACTIVECONTACTCENTER.COM</Email>
<Type>Signer</Type>
<AccessCode xsi:nil="true"></AccessCode>
<RequireIDLookup>false</RequireIDLookup>
</Recipient>
</Recipients>
<Subject>sign</Subject>
<EmailBlurb></EmailBlurb>
</Envelope>
</CreateAndSendEnvelope>
</s:Body>
</s:Envelope>
</MessageLogTraceRecord>
CreateAndSendEnvelope response
<MessageLogTraceRecord>
<HttpResponse xmlns="http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace">
<StatusCode>InternalServerError</StatusCode>
<StatusDescription>Internal Server Error</StatusDescription>
<WebHeaders>
<Vary>Accept-Encoding</Vary>
<Strict-Transport-Security>max-age=7776000; includeSubDomains</Strict-Transport-Security>
<Content-Length>1394</Content-Length>
<Cache-Control>private</Cache-Control>
<Content-Type>text/xml; charset=utf-8</Content-Type>
<Date>Wed, 25 Sep 2013 16:03:23 GMT</Date>
</WebHeaders>
</HttpResponse>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsa:Action>http://schemas.xmlsoap.org/ws/2004/08/addressing/fault</wsa:Action>
<wsa:MessageID>urn:uuid:e12ae2b6-6328-4b5b-b553-95f422f66454</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:9f37c1cf-d875-4acd-9b88-108e9b11efc2</wsa:RelatesTo>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-14c52cbb-7b93-4541-9867-c16654c1629b">
<wsu:Created>2013-09-25T16:03:24Z</wsu:Created>
<wsu:Expires>2013-09-25T16:08:24Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode xmlns="">soap:Client</faultcode>
<faultstring xmlns="">This Account lacks sufficient permissions. </faultstring>
<faultactor xmlns="">missing in Web.Config</faultactor>
<detail xmlns="">
<ErrorCode xmlns="missing in Web.Config">111</ErrorCode>
<ErrorReason xmlns="missing in Web.Config">This Account lacks sufficient permissions.</ErrorReason>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
</MessageLogTraceRecord>
This means that you are trying to use a feature or setting that is not enabled on your demo account. By default DocuSign enables all features on demo accounts so I'm not sure how your account got into a weird, semi-activated state.
In most situations this needs to be fixed by DocuSign on their side by someone going into your account and enabling a feature or setting.
I've gone through your account and enabled some things that should have been turned on, please try again.

Schema for Siebel header

<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
<wsse:UsernameToken xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">
<wsse:Username>Username</wsse:Username>
<wsse:Password Type="wsse:PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
The above lines are entered as XML fragment in a BPEL process in JDeveloper.Question: How do I design a suitable schema to get Username and Password for Siebel header to call out Siebel services?
this is an example of request to siebel web services with WSSOAP option turned on:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<ns:UsernameToken xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://siebel.com/webservices" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">User name goes here</ns:UsernameToken>
<ns:PasswordText xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://siebel.com/webservices" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">Password goes here</ns:PasswordText>
<ns:SessionType xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://siebel.com/webservices" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">Session type goes here</ns:SessionType>
<ns:SessionToken xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://siebel.com/webservices" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/">Session token goes here</ns:SessionToken>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
without WSSOAP option you would have to either invoke that as anonymous user (configured on Siebel side) or put user name & password in URL.
Here you can find more information (Siebel Bookshelf): http://docs.oracle.com/cd/B40099_02/books/EAI2/EAI2_WebServices.html

Resources