Yesterday transactions started failing while using authorize.net php API. But after looking at the logs, the transactions weren't failing at all. In fact, I get response code 1: {"code":"1","description":"This transaction has been approved."}. However, I also get: {"code":"E00013","text":"The field is invalid."} at the same time, which was triggering my fail logic. I changed my fail logic so the transaction goes through on my site but would like to know what is causing the error E00013. It gives no reference. I did a basic test that uses only a card and amount, and the error still comes through in the response. I literally checked each field and then did nothing but test card data and amount. I have no idea what to do now?? Any help would be appreciated.
โ05-29-2026 08:02 PM
I am suddenly getting this E00013 error response too when it worked normally before. After some digging I figured out this problem appears to be caused by the PHP SDK sending a "clientId" in the request.
In file lib/net/authorize/api/controller/base/ApiOperationBase.php on line 122 calls the following:
$this->apiRequest->setClientId("sdk-php-" . \net\authorize\api\constants\ANetEnvironment::VERSION);Since this line is added in execute() you don't have a chance to override it other than to comment out or delete that line of code.
I noticed this after comparing what the PHP SDK was generating for requests compared to the API documentation, and clientId is not listed anywhere in the request field description.
โ05-31-2026 10:27 PM
I created an issue and PR in github as well: https://github.com/AuthorizeNet/sdk-php/issues/474
โ05-31-2026 11:10 PM
Got the same error. Any request containing `clientId: "sdk-php-2.0.2"` is rejected with E00013. Removing the field
makes the identical request succeed.
โ06-01-2026 08:54 AM
โ06-02-2026 03:36 AM
@VJAINFAW c# SDK has issue. They internal method (SetClientId()) override yours value of clientId to default value even if you set it manually. Default value contains dots and API returns this error if clientId contains dots.
โ06-02-2026 02:01 PM
var request = new createTransactionRequest
{
transactionRequest = transactionRequest,
clientId = "clientid" //will be overridden
};
var controller = new createTransactionController(request); // here is overriding process
request.clientId = "clientid"; //should work
controller.Execute();
โ06-03-2026 12:17 AM
We're running into the same issue with the .NET SDK and bypassing the clientID fixes the issue.
Does Authorize.NET moderate this forum? Has anyone received a response from Authorize.NET directly?
โ06-03-2026 09:25 AM
Thanks! The API Live Console was working, so I was focused on our environment and your post help me identify the issue. I can confirm the same error/solution applies for the Java SDK.
var controller = new CreateTransactionController(apiRequest); // clientId is set in here
apiRequest.setClientId("overriden");
controller.execute();Overriding the client id after the controller is created solved the issue for me
โ06-03-2026 04:19 PM
I'm also facing the same issue on the Authorize.net Sandbox environment:
Error:
E00013 - The field is invalid.
As a temporary workaround, I commented out the following line:
$this->apiRequest->setClientId("sdk-php-" . \net\authorize\api\constants\ANetEnvironment::VERSION);File:
vendor/authorizenet/authorizenet/lib/net/authorize/api/controller/base/ApiOperationBase.php
After commenting out this line, the requests started working again in the Sandbox environment.
However, I'm not sure whether the same issue exists in the Production environment. If anyone has already verified this, please let me know.
Also, I'm looking for a proper solution instead of modifying files under the vendor directory.
Current package version:
"authorizenet/authorizenet": "~1.9.6"
Has anyone encountered this issue recently, or found a recommended fix/updated package version from Authorize.net?
โ06-04-2026 12:13 AM