<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Getting E00007 – User Authentication Failed on Production with Authorize.net PHP SDK (PRODUCTION) in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Getting-E00007-User-Authentication-Failed-on-Production-with/m-p/95203#M58807</link>
    <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;I'm integrating Authorize.net into my PHP application using the official Authorize.net PHP SDK (&lt;A href="https://github.com/AuthorizeNet/sdk-php" target="_blank"&gt;https://github.com/AuthorizeNet/sdk-php&lt;/A&gt;) and I'm running into the following error only on the Production environment:&lt;/P&gt;&lt;P&gt;E00007 - User authentication failed due to invalid authentication values.&lt;/P&gt;&lt;P&gt;The confusing part is that everything works perfectly in the Sandbox environment - transactions go through without any issues using my Sandbox API Login ID and Transaction Key against &lt;A href="https://apitest.authorize.net/xml/v1/request.api" target="_blank"&gt;https://apitest.authorize.net/xml/v1/request.api&lt;/A&gt;. The moment I switch to my Production credentials and point to the Production endpoint, I get E00007.&lt;/P&gt;&lt;P&gt;I have already confirmed that:&lt;/P&gt;&lt;P&gt;- My Production API Login ID and Production Transaction Key are correctly copied from the Authorize.net Merchant Interface - no typos, no extra spaces, no hidden characters.&lt;BR /&gt;- I am pointing to the correct Production endpoint: &lt;A href="https://api.authorize.net/xml/v1/request.api" target="_blank"&gt;https://api.authorize.net/xml/v1/request.api&lt;/A&gt;&lt;BR /&gt;- The same code structure that works in Sandbox is being used for Production, with only the credentials and endpoint swapped.&lt;/P&gt;&lt;P&gt;Here is the relevant portion of my PHP code:&lt;/P&gt;&lt;LI-CODE lang="php"&gt;$merchantAuthentication = new MerchantAuthenticationType();
$merchantAuthentication-&amp;gt;setName('7h******N6s');
$merchantAuthentication-&amp;gt;setTransactionKey('4L3******Pk6');

$refId = 'ref' . time();

$creditCard = new CreditCardType();
$creditCard-&amp;gt;setCardNumber("4111111111111111");
$creditCard-&amp;gt;setExpirationDate("2038-12");
$creditCard-&amp;gt;setCardCode("123");

$paymentOne = new PaymentType();
$paymentOne-&amp;gt;setCreditCard($creditCard);

$order = new OrderType();
$order-&amp;gt;setInvoiceNumber("10101");
$order-&amp;gt;setDescription("Golf Shirts");

$customerAddress = new CustomerAddressType();
$customerAddress-&amp;gt;setFirstName("Ellen");
$customerAddress-&amp;gt;setLastName("Johnson");
$customerAddress-&amp;gt;setCompany("Souveniropolis");
$customerAddress-&amp;gt;setAddress("14 Main Street");
$customerAddress-&amp;gt;setCity("Pecan Springs");
$customerAddress-&amp;gt;setState("TX");
$customerAddress-&amp;gt;setZip("44628");
$customerAddress-&amp;gt;setCountry("USA");

$customerData = new CustomerDataType();
$customerData-&amp;gt;setType("individual");
$customerData-&amp;gt;setId("99999456654");
$customerData-&amp;gt;setEmail("EllenJohnson@example.com");

$duplicateWindowSetting = new SettingType();
$duplicateWindowSetting-&amp;gt;setSettingName("duplicateWindow");
$duplicateWindowSetting-&amp;gt;setSettingValue("60");

$merchantDefinedField1 = new UserFieldType();
$merchantDefinedField1-&amp;gt;setName("customerLoyaltyNum");
$merchantDefinedField1-&amp;gt;setValue("1128836273");

$merchantDefinedField2 = new UserFieldType();
$merchantDefinedField2-&amp;gt;setName("favoriteColor");
$merchantDefinedField2-&amp;gt;setValue("blue");

$transactionRequestType = new TransactionRequestType();
$transactionRequestType-&amp;gt;setTransactionType("authCaptureTransaction");
$transactionRequestType-&amp;gt;setAmount(20.00);
$transactionRequestType-&amp;gt;setOrder($order);
$transactionRequestType-&amp;gt;setPayment($paymentOne);
$transactionRequestType-&amp;gt;setBillTo($customerAddress);
$transactionRequestType-&amp;gt;setCustomer($customerData);
$transactionRequestType-&amp;gt;addToTransactionSettings($duplicateWindowSetting);
$transactionRequestType-&amp;gt;addToUserFields($merchantDefinedField1);
$transactionRequestType-&amp;gt;addToUserFields($merchantDefinedField2);

$request = new CreateTransactionRequest();
$request-&amp;gt;setMerchantAuthentication($merchantAuthentication);
$request-&amp;gt;setRefId($refId);
$request-&amp;gt;setTransactionRequest($transactionRequestType);

$controller = new CreateTransactionController($request);
$response = $controller-&amp;gt;executeWithApiResponse('https://api.authorize.net/xml/v1/request.api');

if ($response != null) {
if ($response-&amp;gt;getMessages()-&amp;gt;getResultCode() == "Ok") {
$tresponse = $response-&amp;gt;getTransactionResponse();
if ($tresponse != null &amp;amp;&amp;amp; $tresponse-&amp;gt;getMessages() != null) {
echo " Successfully created transaction with Transaction ID: " . $tresponse-&amp;gt;getTransId() . "\n";
echo " Transaction Response Code: " . $tresponse-&amp;gt;getResponseCode() . "\n";
echo " Message Code: " . $tresponse-&amp;gt;getMessages()[0]-&amp;gt;getCode() . "\n";
echo " Auth Code: " . $tresponse-&amp;gt;getAuthCode() . "\n";
echo " Description: " . $tresponse-&amp;gt;getMessages()[0]-&amp;gt;getDescription() . "\n";
} else {
echo "Transaction Failed \n";
if ($tresponse-&amp;gt;getErrors() != null) {
echo " Error Code : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorCode() . "\n";
echo " Error Message : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorText() . "\n";
}
}
} else {
echo "Transaction Failed \n";
$tresponse = $response-&amp;gt;getTransactionResponse();
if ($tresponse != null &amp;amp;&amp;amp; $tresponse-&amp;gt;getErrors() != null) {
echo " Error Code : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorCode() . "\n";
echo " Error Message : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorText() . "\n";
} else {
echo " Error Code : " . $response-&amp;gt;getMessages()-&amp;gt;getMessage()[0]-&amp;gt;getCode() . "\n";
echo " Error Message : " . $response-&amp;gt;getMessages()-&amp;gt;getMessage()[0]-&amp;gt;getText() . "\n";
}
}
} else {
echo "No response returned \n";
}&lt;/LI-CODE&gt;&lt;P&gt;What I have already verified:&lt;BR /&gt;- Sandbox integration is fully working with Sandbox credentials on &lt;A href="https://apitest.authorize.net/xml/v1/request.api" target="_blank"&gt;https://apitest.authorize.net/xml/v1/request.api&lt;/A&gt;&lt;BR /&gt;- Production API Login ID and Transaction Key are correctly copied from the Merchant Interface (Production account)&lt;BR /&gt;- The endpoint is explicitly set to &lt;A href="https://api.authorize.net/xml/v1/request.api" target="_blank"&gt;https://api.authorize.net/xml/v1/request.api&lt;/A&gt; (Production)&lt;BR /&gt;- Regenerated the Production Transaction Key from the dashboard to rule out an expired or revoked key&lt;BR /&gt;- No extra whitespace or hidden characters in the credentials&lt;BR /&gt;- The code logic is identical between Sandbox and Production - only the credentials and endpoint differ&lt;/P&gt;&lt;P&gt;My questions:&lt;BR /&gt;1. Since Sandbox works fine, what specifically about the Production account could still cause E00007?&lt;BR /&gt;2. Could account-level restrictions, such as IP whitelisting, an account not fully activated, or account status issues, trigger this error even with correct credentials?&lt;BR /&gt;3. Is there anything special that needs to be enabled or confirmed on the Production account before API access is allowed?&lt;/P&gt;&lt;P&gt;Any guidance would be greatly appreciated. Thank you!&lt;/P&gt;</description>
    <pubDate>Thu, 07 May 2026 20:36:29 GMT</pubDate>
    <dc:creator>asankaherath</dc:creator>
    <dc:date>2026-05-07T20:36:29Z</dc:date>
    <item>
      <title>Getting E00007 – User Authentication Failed on Production with Authorize.net PHP SDK (PRODUCTION)</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Getting-E00007-User-Authentication-Failed-on-Production-with/m-p/95203#M58807</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;I'm integrating Authorize.net into my PHP application using the official Authorize.net PHP SDK (&lt;A href="https://github.com/AuthorizeNet/sdk-php" target="_blank"&gt;https://github.com/AuthorizeNet/sdk-php&lt;/A&gt;) and I'm running into the following error only on the Production environment:&lt;/P&gt;&lt;P&gt;E00007 - User authentication failed due to invalid authentication values.&lt;/P&gt;&lt;P&gt;The confusing part is that everything works perfectly in the Sandbox environment - transactions go through without any issues using my Sandbox API Login ID and Transaction Key against &lt;A href="https://apitest.authorize.net/xml/v1/request.api" target="_blank"&gt;https://apitest.authorize.net/xml/v1/request.api&lt;/A&gt;. The moment I switch to my Production credentials and point to the Production endpoint, I get E00007.&lt;/P&gt;&lt;P&gt;I have already confirmed that:&lt;/P&gt;&lt;P&gt;- My Production API Login ID and Production Transaction Key are correctly copied from the Authorize.net Merchant Interface - no typos, no extra spaces, no hidden characters.&lt;BR /&gt;- I am pointing to the correct Production endpoint: &lt;A href="https://api.authorize.net/xml/v1/request.api" target="_blank"&gt;https://api.authorize.net/xml/v1/request.api&lt;/A&gt;&lt;BR /&gt;- The same code structure that works in Sandbox is being used for Production, with only the credentials and endpoint swapped.&lt;/P&gt;&lt;P&gt;Here is the relevant portion of my PHP code:&lt;/P&gt;&lt;LI-CODE lang="php"&gt;$merchantAuthentication = new MerchantAuthenticationType();
$merchantAuthentication-&amp;gt;setName('7h******N6s');
$merchantAuthentication-&amp;gt;setTransactionKey('4L3******Pk6');

$refId = 'ref' . time();

$creditCard = new CreditCardType();
$creditCard-&amp;gt;setCardNumber("4111111111111111");
$creditCard-&amp;gt;setExpirationDate("2038-12");
$creditCard-&amp;gt;setCardCode("123");

$paymentOne = new PaymentType();
$paymentOne-&amp;gt;setCreditCard($creditCard);

$order = new OrderType();
$order-&amp;gt;setInvoiceNumber("10101");
$order-&amp;gt;setDescription("Golf Shirts");

$customerAddress = new CustomerAddressType();
$customerAddress-&amp;gt;setFirstName("Ellen");
$customerAddress-&amp;gt;setLastName("Johnson");
$customerAddress-&amp;gt;setCompany("Souveniropolis");
$customerAddress-&amp;gt;setAddress("14 Main Street");
$customerAddress-&amp;gt;setCity("Pecan Springs");
$customerAddress-&amp;gt;setState("TX");
$customerAddress-&amp;gt;setZip("44628");
$customerAddress-&amp;gt;setCountry("USA");

$customerData = new CustomerDataType();
$customerData-&amp;gt;setType("individual");
$customerData-&amp;gt;setId("99999456654");
$customerData-&amp;gt;setEmail("EllenJohnson@example.com");

$duplicateWindowSetting = new SettingType();
$duplicateWindowSetting-&amp;gt;setSettingName("duplicateWindow");
$duplicateWindowSetting-&amp;gt;setSettingValue("60");

$merchantDefinedField1 = new UserFieldType();
$merchantDefinedField1-&amp;gt;setName("customerLoyaltyNum");
$merchantDefinedField1-&amp;gt;setValue("1128836273");

$merchantDefinedField2 = new UserFieldType();
$merchantDefinedField2-&amp;gt;setName("favoriteColor");
$merchantDefinedField2-&amp;gt;setValue("blue");

$transactionRequestType = new TransactionRequestType();
$transactionRequestType-&amp;gt;setTransactionType("authCaptureTransaction");
$transactionRequestType-&amp;gt;setAmount(20.00);
$transactionRequestType-&amp;gt;setOrder($order);
$transactionRequestType-&amp;gt;setPayment($paymentOne);
$transactionRequestType-&amp;gt;setBillTo($customerAddress);
$transactionRequestType-&amp;gt;setCustomer($customerData);
$transactionRequestType-&amp;gt;addToTransactionSettings($duplicateWindowSetting);
$transactionRequestType-&amp;gt;addToUserFields($merchantDefinedField1);
$transactionRequestType-&amp;gt;addToUserFields($merchantDefinedField2);

$request = new CreateTransactionRequest();
$request-&amp;gt;setMerchantAuthentication($merchantAuthentication);
$request-&amp;gt;setRefId($refId);
$request-&amp;gt;setTransactionRequest($transactionRequestType);

$controller = new CreateTransactionController($request);
$response = $controller-&amp;gt;executeWithApiResponse('https://api.authorize.net/xml/v1/request.api');

if ($response != null) {
if ($response-&amp;gt;getMessages()-&amp;gt;getResultCode() == "Ok") {
$tresponse = $response-&amp;gt;getTransactionResponse();
if ($tresponse != null &amp;amp;&amp;amp; $tresponse-&amp;gt;getMessages() != null) {
echo " Successfully created transaction with Transaction ID: " . $tresponse-&amp;gt;getTransId() . "\n";
echo " Transaction Response Code: " . $tresponse-&amp;gt;getResponseCode() . "\n";
echo " Message Code: " . $tresponse-&amp;gt;getMessages()[0]-&amp;gt;getCode() . "\n";
echo " Auth Code: " . $tresponse-&amp;gt;getAuthCode() . "\n";
echo " Description: " . $tresponse-&amp;gt;getMessages()[0]-&amp;gt;getDescription() . "\n";
} else {
echo "Transaction Failed \n";
if ($tresponse-&amp;gt;getErrors() != null) {
echo " Error Code : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorCode() . "\n";
echo " Error Message : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorText() . "\n";
}
}
} else {
echo "Transaction Failed \n";
$tresponse = $response-&amp;gt;getTransactionResponse();
if ($tresponse != null &amp;amp;&amp;amp; $tresponse-&amp;gt;getErrors() != null) {
echo " Error Code : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorCode() . "\n";
echo " Error Message : " . $tresponse-&amp;gt;getErrors()[0]-&amp;gt;getErrorText() . "\n";
} else {
echo " Error Code : " . $response-&amp;gt;getMessages()-&amp;gt;getMessage()[0]-&amp;gt;getCode() . "\n";
echo " Error Message : " . $response-&amp;gt;getMessages()-&amp;gt;getMessage()[0]-&amp;gt;getText() . "\n";
}
}
} else {
echo "No response returned \n";
}&lt;/LI-CODE&gt;&lt;P&gt;What I have already verified:&lt;BR /&gt;- Sandbox integration is fully working with Sandbox credentials on &lt;A href="https://apitest.authorize.net/xml/v1/request.api" target="_blank"&gt;https://apitest.authorize.net/xml/v1/request.api&lt;/A&gt;&lt;BR /&gt;- Production API Login ID and Transaction Key are correctly copied from the Merchant Interface (Production account)&lt;BR /&gt;- The endpoint is explicitly set to &lt;A href="https://api.authorize.net/xml/v1/request.api" target="_blank"&gt;https://api.authorize.net/xml/v1/request.api&lt;/A&gt; (Production)&lt;BR /&gt;- Regenerated the Production Transaction Key from the dashboard to rule out an expired or revoked key&lt;BR /&gt;- No extra whitespace or hidden characters in the credentials&lt;BR /&gt;- The code logic is identical between Sandbox and Production - only the credentials and endpoint differ&lt;/P&gt;&lt;P&gt;My questions:&lt;BR /&gt;1. Since Sandbox works fine, what specifically about the Production account could still cause E00007?&lt;BR /&gt;2. Could account-level restrictions, such as IP whitelisting, an account not fully activated, or account status issues, trigger this error even with correct credentials?&lt;BR /&gt;3. Is there anything special that needs to be enabled or confirmed on the Production account before API access is allowed?&lt;/P&gt;&lt;P&gt;Any guidance would be greatly appreciated. Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 07 May 2026 20:36:29 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Getting-E00007-User-Authentication-Failed-on-Production-with/m-p/95203#M58807</guid>
      <dc:creator>asankaherath</dc:creator>
      <dc:date>2026-05-07T20:36:29Z</dc:date>
    </item>
  </channel>
</rss>

