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 RecycleNeed 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:
- Pricing Feed CSV File
A CSV file following specific requirements which we can fetch to update the pricing in our system. - Order postback endpoint
When a customer places an order through us, we post the order information to your system. - 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.
- Any prices set to 0 will be ignored. Set anything to 0 that you do not wish to appear in our system.
- 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.
- 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:
- Request:
We send a payload to your endpoint for each order in our system that hasnt been received yet by your endpoint. - 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"}
- 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. |
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.
- 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:
Headers
As part of your request you will need to provide the following authorization header:
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.