Joining Sell 2 Recycle

Introduction

Our platform allows customers to compare prices amongst the top recycling businesses, this enables them to find the best price for their devices as well as feel comfortable they are choosing a reputable business to recycle with.

Join Sell 2 Recycle

Need a Recycling Website

If you currently do not have a recycling website, we recommend WebDesires Mobile Phone Recycling System, which comes with integration for our platform making it seamless to join.

Integrations

It's simple to integrate your recycling website to Sell 2 Recycle's price comparrison engine and requires a few simple components:

  1. Pricing Feed CSV File 
    A CSV file following specific requirements which we can fetch to update the pricing in our system.
  2. Order postback endpoint
    When a customer places an order through us, we post the order information to your system.
  3. Order updates API Integration
    When you update an order on your system we can recieve those updates through our API.

Pricing Feeds CSV

In order to add your pricing to our comparrison engine you will need to generate and supply a publically hosted and accessible CSV file to the specifications below, we fetch our feeds once every 10~ minutes.

All pricing on Sell 2 Recycle are directly controlled from the data in this CSV file, it is the merchants resposibility to ensure this data is correct and up to date and that any prices provided are honored where applicable.

When processing your feed we will only do some basic checks, that the product matches a product in our system, that the price is above 0 and formatted to 2 decimal places and that the network and GB is provided and correct.

  1. Any prices set to 0 will be ignored. Set anything to 0 that you do not wish to appear in our system.
  2. Prices are updated every 10~ minutes, sometimes this may be sooner and sometimes delays may occur. If you need to update quicker you can request immediate refresh from your administration panel.
  3. We are not responsible for any errors in the feed such as product or pricing errors.

Any issues we encounter while processing your feed can be seen from your dashboard. We store feeds for 60 days for the purpose of cross referencing and/or debugging.

Requests

We perform a HTTP GET request once every 10~ minutes for your feed file, please ensure your server does not block our IP or our User Agent below:

  • IP: 78.129.150.3
  • User Agent: Sell 2 Recycle

Feed Specifications

Your Feed must be a valid Comma-Seperated Values file and follow the below feed requirements, please ensure you read this documentation in full - you can use our feed tester at the bottom of this page to test your feed at any time.

product_id product link price network condition category
1035 Apple iPad Pro 12.9 2020 WiFi and Data 1000GB [my-domain]/sell-my-tablet/apple/ipad-pro-129-2020-wifi-and-data-1000gb 355 unlocked good tablet
1150 Apple iPhone 13 Pro Max 256GB [my-domain]/sell-my-mobile/apple/iphone-13-pro-max-256gb 442.5 unlocked broken phone

Feed Parameters

Name Description
product_id This will be your own unique product id, we send this back to you in our order postback calls.
product You must give us the full product name including make and model with the capacity in GB - if your product name matches our product names they will instantly match up, else we/you may need to match products manually in our system - this is not automated and we only manually match up products periodically.
link A full HTTPS URL to your product on your website. We do not actually utilise this at the moment apart from some edge cases where the product doesnt have the GB but the URL might, but you should provide us the full url to your product page.
price The price for the product, this must be wither a whole number, or 2 decimal places, set any price to 0 to disable.
network Recycling products must be in a network, for products such as tablets that have no networks we use "unlocked" for pricing, values: unlocked three ee o2 t-mobile orange tesco virgin vodaphone giffgaff other
condition The condition must be set to one of the following values: new good poor broken
category You must provide a category for your device, values: phone tablet watch console

Feed Tester

Use our handy feed tester below to check your feed with our system, it will return a list of any hard and soft failures and also some informative.

  • HARD - An unrecoverable issue that will stop us from processing your feed. You must fix these issues.
  • SOFT - An issue with a particular row in the feed, this will cause us to ignore the entry but we will continue processing the file - these may or may not need any attention.
  • INFO - Unique to this feed tester - informative information such as 0 price products (which we ignore) and non matched products (which will require manual intervention).

Order Postback

Our order postback endpoint sends order information to you periodically using a JSON array. This section of the documentation details how this system works and how you will need to handle the endpoint and the data sent and how you need to respond.

There are two parts to this API:

  1. Request:
    We send a payload to your endpoint for each order in our system that hasnt been received yet by your endpoint.
  2. Response:
    Your endpoint should respond appropriately so that we know you have recieved and processed the data sent.

Example Request

Below is an example request from our server, this will be a JSON encoded array of all the order details, please see the request parameters for further details.

{
		 "payment_method": "bacs",
		 "bank_sortcode": "000000",
		 "bank_account_number": "00000000",
		 "paypal": "",
		 "payment_currency": "GBP",

		 "last_name": "Person",
		 "first_name": "Example",
		 "email": "example@sell2recycle.co.uk",
		 "number": "+00000000000",

		 "address_country": "United Kingdom",
		 "address_county": "My County",
		 "address_town": "My Town",
		 "address_line_1": "123 My Street",
		 "address_line_2": "",
		 "address_postcode": "WS122DY",

		 "manufacturer_name": "Samsung",
		 "product_name": "iPad Pro (2017) 12.9\" Wi-Fi 512 GB",
		 "product_id": "000000",
		 "condition": "working",
		 "network": "unlocked",
		 "quoted_price": 185.0,

		 "order_id": "f7a73750-fe53-4372-b278-6ed77e72d2a2",
		 "postage_type": "trade_in_pack"
}

Example Responses

Below is an example response that your server should respond on each request above, this informs us that you have or haven't processed our request, if you respond with an error or you do not respond we will resend the request periodically.

Successful Response

A JSON encoded array must be returned giving us your internal order_id and a result of "success", for example:

{"result": "success", "order_id": 581164}
Unsuccessful Response

You can if possible respond with an error response, for example:

{"result": "error", "reason": "Server Error - Could not insert record / try again"}
If a request fails for any reason we will periodically retry the request indefinately which may cause a queue, it is your responsibility to ensure you have appropriate alerts in place for endpoint failures. We will deem a request a failure for any of the following reasons:
  • Unable to connect to the postback.
  • Recieve an invalid response such as invalid JSON etc.
  • Missing result or order_id.
  • Result is not equal to success.
  • Order ID is empty, 0 or has already been provided.

Request Parameters

Name Description
secure_token The secure token set in your account, we recommend you check that this token matches what you expect.
payment_method The method of payment, values: bacs paypal
bank_sortcode The sortcode if provided.
bank_account_number The bank account number if provided.
paypal The paypal email address if provided.
payment_currency The payment currency, values: GBP
last_name The customers last name.
first_name The customers first name.
email The customers email address.
number The customers phone number.
address_country The customers address country, values: United Kingdom
address_county The customers address county.
address_town The customers address town.
address_line_1 The customers address line 1.
address_line_2 The customers address line 2.
address_postcode The customers address postcode.
manufacturer_name The products manufacturer name, eg "Samsung".
product_name The product name from your feed.
product_id The product id from your feed (your product id).
condition The selected condition, values: new good poor broken
network The selected network, values: unlocked three ee o2 t-mobile orange tesco virgin vodaphone giffgaff other
quoted_price The selected price customer recieved.
order_id Our internal order_id - 36 character string.
postage_type The selected postage type, values: free_post_pack email_label

Postback Tester

Enter your postback url below and we will send you a test postback and then confirm your response.

We will submit to you dummy data as follows, please ensure you're code can handle the test data appropriately this will not be a real order.
  • Secure Token: "testorder".
  • Name: "John Doe".
  • E-Mail: example@example.com.
  • Product: "Apple iPhone 14 Plus 125GB", Condition: "good", Network: "unlocked", Price: £150.50, Product ID: 0000
  • Payment Method: paypal (same email as above).
  • Pstage Type: e-mail label
  • Address of Sell 2 Recycle.
  • Order ID: testorde-r000-0000-0000-00000000{4 random numbers}.

Order Updates

Our system provides the ability for customers to check their order status. Also customers may contact us directly about an order placed with us, so it is important that you provide us order updates from your system for key things as outlined in this document.

Endpoint URL

All requests should be a JSON encoded POST request to the below url:

https://sell2recycle.co.uk/order-history/update

Headers

As part of your request you will need to provide the following authorization header:

Authorization: TOKEN {SECURE_TOKEN}

Request Parameters

Name Description
status The order status, values: pack_sent, awaiting_device, device_received, device_inspected, new_offer, payment_pending, amendment_rejected, order_paid or device_shipped
merchant_order_id The internal order id (your order id).
reason A string containing the reason / any details about the status change, e.g. "Device downgraded due to wrong model.".
price If a new_offer has been sent to the customer this should be the amended price.
tracking If a device_shipped has been sent to the customer this should be the tracking number (optional).

Example Request

Below is an example request.

{
		 "status": "new_offer",
		 "merchant_order_id": "000000",
		 "reason": "Device condition does not match Good condition due to battery dead.",
		 "price": "120.50"
}

Example Responses

Below is an example responses for success and failure from our system.

Successful Response

A JSON encoded array with result of "success", for example:

{"result": "success"}
Unsuccessful Response

A JSON encoded array with result of "error" with a reason, for example:

{"result": "error", "reason": "Cannot find order id"}

Integration Checklist

Please follow this basic checklist step by step.

Register with Sell 2 Recycle

Please fill in the form below to register your interest to join Sell 2 Recycle.

Personal Details
Company Details
Recycler Parameters
Payment Period & Fees
Days
Days
£