General Data Protection Regulation
As per the General Data Protection Regulation (GDPR), TIBCO Reward has implemented AnonymizeShopper API so that customers can remove all their personal identifiable information from Reward.
AnonymizeShopper API when invoked for a shopper using one of the retailer supported unique identifiers, anonymizes the Personal Identifiable Information(PII) and Payment Card Industry(PCI) data.
PII data includes Firstname, LastName, Password, Address, PhoneNumber, UniqueIdentifiers (RetailerShopperId, EmailAddress, UserName, LoyaltyCard, CreditCard and so on).
PCI data includes RegisteredCards.
After a shopper is anonymized, the system anonymizes the identified PII and PCI data and then unenrolls the shopper from the loyalty program and from that point the shopper is not identifiable in the system.
Authentication Request is a prerequisite for calling AnonymizeShopper API.
API Authentication Request
<?xml version="1.0"?> <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"> <soap:Body> <AuthenticateUserResponse xmlns="http://www.loyaltylab.com/loyaltyapi/"> <AuthenticateUserResult> <RetailerGuid>878ijgbh-dsfd-vfvv-hg78-vsdvrgvvhgfg</RetailerGuid> <Authenticated>true</Authenticated> <Token>565857byftvif7st6d5d7ho8sdg6s7d65sg7d4sd6bst6dts5dgshd67sbdst</Token> <ICSUserID>5645</ICSUserID> </AuthenticateUserResult> </AuthenticateUserResponse> </soap:Body> </soap:Envelope>
<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"> <soap:Body> <AuthenticateUserResponse xmlns="http://www.loyaltylab.com/loyaltyapi/"> <AuthenticateUserResult> <RetailerGuid>878ijgbh-dsfd-vfvv-hg78-vsdvrgvvhgfg</RetailerGuid> <Authenticated>true</Authenticated> <Token>ubysdsbdsudtsnidsbudsdsdsdsferewr-ZlYw6L2+ererergfvdvdv/fdffefgeffcee.</Token> <ICSUserID>5645</ICSUserID> </AuthenticateUserResult> </AuthenticateUserResponse> </soap:Body> </soap:Envelope>
API AnonymizeShopper Request using the authenticated token
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <AuthenticationResult xmlns="http://www.loyaltylab.com/loyaltyapi/"> <RetailerGuid>878ijgbh-dsfd-vfvv-hg78-vsdvrgvvhgfg</RetailerGuid> <Authenticated>true</Authenticated> <Token>ubysdsbdsudtsnidsbudsdsdsdsferewr-ZlYw6L2+ererergfvdvdv/fdffefgeffcee.</Token> <ICSUserID>5645</ICSUserID> </AuthenticationResult> </soap:Header> <soap:Body> <AnonymizeShopper xmlns="http://www.loyaltylab.com/loyaltyapi/"> <shopperIdentifier> <IdentifierType>RetailerShopperId</IdentifierType> <IdentifierValue>22732885</IdentifierValue> </shopperIdentifier> </AnonymizeShopper> </soap:Body> </soap:Envelope>
API AnonymizeShopper Response on Success
<?xml version="1.0" encoding="utf-8"?> <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"> <soap:Body> <AnonymizeShopperResponse xmlns="http://www.loyaltylab.com/loyaltyapi/"> <AnonymizeShopperResult>Anonymize shopper request is processed successfully!</AnonymizeShopperResult> </AnonymizeShopperResponse> </soap:Body> </soap:Envelope>
API AnonymizeShopper Response on Failure scenario I
<?xml version="1.0" encoding="utf-8"?> <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"> <soap:Body> <soap:Fault> <faultcode>C204</faultcode> <faultstring>LoyaltyAPILibrary.SoapCustomAPIException: Unable to find shopper from the specified RetailerShopperId at LoyaltyAPIEntities.LoyaltyAPIBaseAuthenticatedService.LogAndThrowCustomException(Exception ex, NameValueCollection additionalExceptionInfo, Int32 errorCode, String message, Boolean includeFaultCode) in g:\p4Úy.Kanagala_UBHANUPR-Z600VM_1737\LoyaltySystem\Development\InStorecard\Web\Services\LoyaltyAPI\CodeBehind\LoyaltyAPIUtility.cs:line 1242 at LoyaltyAPI.LoyaltyAPI.AnonymizeShopper(ShopperIdentifier shopperIdentifier) in g:\p4Úy.Kanagala_UBHANUPR-Z600VM_1737\LoyaltySystem\Development\InStorecard\Web\Services\LoyaltyAPI\CodeBehind\LoyaltyAPI.cs:line 3469</faultstring> <detail> <code>204</code> <description>Unable to find shopper from the specified RetailerShopperId</description> </detail> </soap:Fault> </soap:Body> </soap:Envelope>
API AnonymizeShopper Response on Failure scenario II
<?xml version="1.0" encoding="utf-8"?> <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"> <soap:Body> <soap:Fault> <faultcode>C416</faultcode> <faultstring>LoyaltyAPILibrary.SoapCustomAPIException: Shopper is already Anonymized at LoyaltyAPIEntities.LoyaltyAPIBaseAuthenticatedService.LogAndThrowCustomException(Exception ex, NameValueCollection additionalExceptionInfo, Int32 errorCode, String message, Boolean includeFaultCode) in g:\p4Úy.Kanagala_UBHANUPR-Z600VM_1737\LoyaltySystem\Development\InStorecard\Web\Services\LoyaltyAPI\CodeBehind\LoyaltyAPIUtility.cs:line 1242 at LoyaltyAPI.LoyaltyAPI.AnonymizeShopper(ShopperIdentifier shopperIdentifier) in g:\p4Úy.Kanagala_UBHANUPR-Z600VM_1737\LoyaltySystem\Development\InStorecard\Web\Services\LoyaltyAPI\CodeBehind\LoyaltyAPI.cs:line 3477</faultstring> <detail> <code>416</code> <description>Shopper is already Anonymized</description> </detail> </soap:Fault> </soap:Body> </soap:Envelope>