I was looking to get the eBay API working with ColdFusion and eBay has released a new validation that must be done before you can get a production API key… It’s called a Marketplace Account Deletion Notification and you MUST validate and respond to the request successfully to be granted a KEY.
This took me a bit to get working; it was really confusing but I finally got it to work; so I wanted to share what I did in hopes it helps someone else; sometime later.
First go to eBay and get to the “get a production key”… it will take you to this screen:

The first thing you will need an SSL certificate on your website. That’s a must; and you should be able to get that working from other tutorials quite easily.
Next, it will ask you for your email address so put it in and save it.
Now, what was tricky and confusing what the next step. It asks you for:
Marketplace account deletion notification endpoint
Verification token
Let’s break these down…
- Marketplace account deletion notification endpoint. This is the URL to your file that will be containing the code below. In my example, I used:
https://www.resellspot.com/inbound/accountDeletion.cfm - Verification Token… this can be anything you want but must be over 32 characters.. I clicked random keys until it stopped giving me an error.
Now, you have that… let’s create a file called “accountDeletion.cfm” and place it in a folder on the root of your site called “inbound”.
In the accountDeletion.cfm file you will need the following code:
<!--- param this so it doesn't throw an error if its missing --->
<cfparam name="url.challenge_code" default="" />
<!--- this is the value in field number 1 above --->
<cfset url.verificationURL = "https://www.resellspot.com/inbound/accountDeletion.cfm" />
<!--- this is the value in field number 2 above --->
<cfset url.verification_token = "sdfopaisfjawef908woprtjkwefjgs0d9fiewr" />
<!--- Let's create a temporary structure element --->
<cfset response = {} />
<!---
let's create a structure item called "challengeResponse" and let's encrypt
the value being passed by eBay as a URL string named "URL.challenge_code", and the
2 variables you defined above
--->
<cfset response['challengeResponse'] = hash(url.challenge_code & url.verification_token & url.verificationURL, "SHA-256") />
<!--- last, let's set the page content type of JSON and output the encrypted value --->
<cfscript>
cfheader( name="Content-Type", value="application/json" );
writeOutput(serializeJSON(response));
</cfscript>
Then go back to ebay and click the test code and it should work… therefore giving you access to the eBay API.
I hope this helps… if you have questions… feel free to reach out!