Update a customer
Last updated: 12-Aug-2025
Rate this article:
Overview
Use the updateCustomerInformation method to update the details of a customer entity from the Avangate system.
Parameters
Parameters | Type/Description |
---|---|
sessionID | Required (string) |
Session identifier, the output of the Login method. Include sessionID into all your requests. Avangate throws an exception if the values are incorrect. The sessionID expires in 10 minutes. | |
Customer |
Object (required) Use this object to update customer information. |
UpdateEndUserSubscriptions |
Optional (boolean) You can push the changes made on the customer info to the end-user details for all subscriptions belonging to this customer. Set true to have the changes reflected on the end-user details for all subscriptions. If null or false, the changes are made only at the customer level. Default value is false. |
Response
Parameters | Type/Description |
---|---|
Boolean | true or false depending on whether or not the operation succeeded. |
Request
<?php
$host = "https://api.avangate.com";
$client = new SoapClient($host . "/soap/4.0/?wsdl", array(
'location' => $host . "/soap/4.0/",
"stream_context" => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
))
));
function hmac($key, $data)
{
$b = 64; // byte length for md5
if (strlen($key) > $b) {
$key = pack("H*", md5($key));
}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad;
$k_opad = $key ^ $opad;
return md5($k_opad . pack("H*", md5($k_ipad . $data)));
}
$merchantCode = "YOUR_MERCHANT_CODE";
$key = "YOUR_SECRET_KEY";
$now = gmdate('Y-m-d H:i:s');
$string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
$hash = hmac($key, $string);
try {
$sessionID = $client->login($merchantCode, $now, $hash);
} catch (SoapFault $e) {
echo "Authentication: " . $e->getMessage();
exit;
}
$customerReference = 298084139;
$externalCustomerReference = 'Apitest123456';
try {
$customerInfo = $client->getCustomerInformation($sessionID, $customerReference, $externalCustomerReference);
} catch (SoapFault $e) {
echo "customerInfo: " . $e->getMessage();
exit;
}
$customerInfo->Email = 'newemailaddressupdated@email.com';
// New Credit object (optional)
$customerInfo->Credit = new stdClass();
$customerInfo->Credit->Limit = 51.0; // float
$customerInfo->Credit->Remaining = 21.0; // float
$customerInfo->Credit->Currency = 'EUR'; // string
$UpdateEndUserSubscriptions = false;
try {
$updatedCustomerInfo = $client->updateCustomerInformation($sessionID, $customerInfo, $UpdateEndUserSubscriptions);
} catch (SoapFault $e) {
echo "updatedCustomerInfo: " . $e->getMessage();
exit;
}
var_dump("updatedCustomerInfo", $updatedCustomerInfo);
Rate this article: