Introduction
Welcome to the Rejoose API Documentation
Our APIs help you integrate sustainability data into your workflows. This documentation covers the following endpoint groups, each serving a specific purpose. Go to the section relevant to your needs:
- e.voice – Carbon data for invoices or similar transactions.
- e.voice circularity – Carbon and circularity data for refurbished and recycled IT products, for ITADs and circular IT.
- Reports – Aggregate PDF reports of your e.voice and e.voice circularity data over a period.
- e.product and e.product+ – Carbon data for single or bulk products. e.product provides the total CO₂e; e.product+ includes full life cycle (LCA) data.
- Categories – Every product category Rejoose recognises, with the other names it is known by, so you can map your product groups before you send devices.
- Groups (e.hub Enterprise) – Data extraction across the organisations of an enterprise group.
Before you send your first document, read Reporting IDs: the ids you send decide the reports you can pull later.
How Our APIs Work
- All Rejoose APIs follow REST principles, using standard REST-oriented URLs and HTTP verbs.
- Requests are form-encoded, and responses are JSON-encoded.
- Authentication is handled via API keys, which you can create in e.hub. Contact support@rejoose.com for access.
- Our APIs evolve over time. We aim to minimize changes, but when updates occur, we'll notify you in advance.
Getting Started
Once your contract is signed, we'll begin a thorough onboarding process.
If you need support before the contract is finalized, please reach out - we'll do our best to assist. Pre-contract support may incur a cost, depending on scope and hours required (we'll inform you beforehand).
Tips for Using the Docs
- Expand objects marked with ⯈ (e.g., ⯈ client, ⯈ devices) to view additional fields.
- Use the sandbox mode for safe testing before going live.
- Do not use the production environment for testing!
Base URLs
https://app.rejoose.com/
https://sandbox.rejoose.com/
Sandbox mode
When accessing e.hub® (https://e-hub.rejoose.com),
you have the option to switch between production and sandbox modes.
Sandbox mode allows you to test and explore features without affecting your live data.
This mode is ideal for tasks like setting up APIs, testing integrations, and generating reports before going live.
Please note: When in Sandbox mode, you will only receive sample data for API and integration testing. So do not conduct data quality testing when testing the API in Sandbox mode.
In sandbox mode:
- Data created or modified won't impact your production environment.
- The Life Cycle Assessment (LCA) data mirrors the production environment but is limited to category average values. During your testing phase, you can use the following categories if you want some LCA data returned:
- Monitor
- Docking Station
- Smartphone
- Notebook
- Server
- Workstation
- Tablet
- Network
- Storage
- Desktop
Utilize sandbox mode to ensure your integration is robust and ready for production use.
Rate Limiting
Our API enforces rate limiting to ensure fair usage and prevent abuse. The current rate limit is set to 600 requests/min.
Please note: For Enterprise solutions, we can adjust rate limitation according to SLA. Please contact our support@rejoose.com or your regional manager.
The following headers are included in each API response to provide information about your current rate limit status:
-
X-RateLimit-Limit
- This header indicates the maximum number of requests you are permitted to make in a given time window.
- Example:
X-RateLimit-Limit: 100
-
X-RateLimit-Remaining
- This header shows the number of requests remaining in the current rate limit window.
- Example:
X-RateLimit-Remaining: 50
-
Retry-After
- This header is included in the response only when your rate limit has been exceeded. It indicates how many seconds you should wait before making a new request.
-
Example:
Retry-After: 55
-
Response Example
-
When a request exceeds the rate limit, the API will return a
429 Too Many Requestsstatus code. The response will include theRetry-Afterheader, as shown below:- HTTP/1.1 429 Too Many Requests
- Content-Type: application/json
- Retry-After: 55
- X-RateLimit-Limit: 100
- X-RateLimit-Remaining: 0
-
Body:
{ "data": null, "errors": { "too_many_requests": ["Too many requests. Please wait a moment and try again."] }, "status": 429 }
-
When a request exceeds the rate limit, the API will return a
IDs in URLs
The GET endpoints for an e.voice and an e.voice circularity take your own id in the URL: external_invoice_id or external_doc_id. URL-encode the id twice before you put it in the path. Rejoose decodes it twice.
2024/001is sent as2024%252F001INV+001is sent asINV%252B001INV 001is sent asINV%2520001
An id that holds only letters, digits, -, _, . and ~ does not change when it is encoded, so you can send it as it is. An id with /, + or % that is encoded only once is not found (404), or it reaches a different endpoint.
The links in a response (self, pdf, base_64_pdf) are already encoded this way. Call them as they are, without encoding them again.
Reporting IDs
Every e.voice and e.voice circularity carries ids that decide how your data is grouped in e.hub and e.insights, and which documents a report covers. Decide on them before the first document goes to production: they are hard to change once data has been sent.
| Level | Field | What it is |
|---|---|---|
| Group | Set up in e.hub Enterprise, nothing is sent in the API | One customer that reaches you under several organization_id values, for example from two ERPs. |
| Organisation | client.organization_id | Your customer. One static value per customer, the same on every document. |
| Company | client.company_id | A company, branch office, or subsidiary of that customer. One value per entity you want to see on its own. |
| Transaction | external_invoice_id (e.voice) or external_doc_id (e.voice circularity) | One document. |
| Batch | batch_id (e.voice circularity only) | The batch of products you received as an ITAD, for example one pickup from a customer. Give every e.voice circularity from that batch the same value and you can report on the batch as a whole. |
Example. Your customer Northwind has customer number NW-10482 in your ERP:
| Entity | client.organization_id | client.company_id |
|---|---|---|
| London head office | NW-10482 | NW-GB-LON |
| Manchester branch office | NW-10482 | NW-GB-MAN |
| French subsidiary | NW-10482 | NW-FR-PAR |
Give every office its own company_id, even when it usually reports together with another one: you can always combine companies in a report by sending several company_ids, but documents sent under one shared id can never be split afterwards. If Northwind also reaches you from a second ERP under another organization_id, an e.hub Enterprise group combines the two.
| To get | Use |
|---|---|
| Everything for the group | List a group's e.voices |
| One customer | The organization_id filter on List e.voices, List e.voice circularities, and both report endpoints |
| One company or branch office | The company_ids filter on the same endpoints |
| One document | Retrieve an e.voice or Retrieve an e.voice circularity by its id |
| One batch of received products (e.voice circularity) | The batch_id filter on List e.voice circularities and the circularity report |
Company ID was formerly called VAT number. vat_number is still accepted and responses return both; use company_id whenever possible. sender.company_id is your own issuing office and is not part of this hierarchy.
Documents already sent under a wrong value: contact support@rejoose.com with the document ids and the correct value.
Refurbishment impact
A refurbished device keeps the production footprint of its first life, so Rejoose does not count manufacturing and transport for it again. What remains is the impact of the refurbishment itself: labour, spare parts, storage, packaging, and transport at the refurbishment facility. This is the refurbishment impact (refurbishment_impact_kg_co2_eq). The avoided emissions are the manufacturing and transport footprint the device avoids, minus its refurbishment impact. They never go below zero.
The refurbishment impact is used by these endpoints:
- Generate an e.voice and Retrieve an e.voice
- Generate an e.voice circularity and Retrieve an e.voice circularity
- Look up a product and Look up products in bulk
Where the figure comes from
Rejoose calculates the refurbishment impact from certified refurbishment impact reporting (RFI) data: the facility data and per-category figures that you submit in e.hub and Rejoose reviews and certifies. Each refurbished device uses the first source in this list that has a figure for it. refurbishment_impact_basis on each device tells you which one was used.
refurbishment_impact_basis | Source |
|---|---|
rfi_category | Your own certified RFI has a figure for the device's category and variant. |
rfi_average | Your own certified RFI has no figure for the category, so its average for the variant is used. |
standard_category | Your own RFI has no figure for the device, so the Rejoose standard RFI's figure for the category is used. |
standard_average | The Rejoose standard RFI's average for the variant. |
percentage | Your refurbishment percentage of the device's manufacturing and transport footprint. Only used while no Rejoose standard RFI is certified. |
refurbishment_impact_basis is null for devices that are not refurbished, are excluded or recycled, or have no carbon data.
Choosing the facility and the variant
- Facility (
facility_external_id) – theexternal_idof one of your own facilities, as registered in e.hub. It must be your own facility and cannot be the Rejoose standard facility; otherwise the request fails with a 422 validation error. When you leave it out, your default facility is used. - Variant (
variant) – the refurbishment process the device went through, named by a variant on the facility. Every facility hasfull(repair) andlight(test and wipe). When you leave it out, the facility's default variant is used. A variant the facility does not have is rejected with a 422, on every device. When the Rejoose standard RFI is used, a variant namedfullorlightselects that variant of the standard.
| Endpoint | Facility | Variant |
|---|---|---|
| Generate an e.voice | options.facility_external_id (whole e.voice) | devices[].variant |
| Generate an e.voice circularity | options.facility_external_id (the whole e.voice circularity) | devices[].variant |
| Look up a product | facility_external_id | variant |
| Look up products in bulk | products[].facility_external_id | products[].variant |
Both fields are only used for refurbished devices and are ignored for all other devices.
What the response tells you
- Each device carries
refurbishment_impact_basisandvariant(the variant you sent). e.voice circularity devices also carryrfi_per_unit_kg_co2_eq, the certified figure per unit, so you can reproducerefurbishment_impact_kg_co2_eqfrom the response. - Each e.voice and e.voice circularity carries
facility_external_id,rfi_external_idandrfi_version(your own certified RFI), andstandard_rfi_external_idandstandard_rfi_version(the Rejoose standard RFI). A field isnullwhen no such RFI covered the document date. - Each e.product answer carries
rfi_external_idandrfi_versionof the RFI that was used: your own, or the Rejoose standard (standard-<year>).
When the figure is set
- e.voice and e.voice circularity – Rejoose sets the figure when the document is generated, from the certified RFI that covers the document date (
external_invoice_dateorexternal_doc_date). The daily update keeps using the same RFI. A stored figure only changes if Rejoose restates or backfills the RFI, and the change appears in the document's version history. - e.product – the answer uses the RFI that applies today and is not stored. A later certification changes the next answer.
In sandbox mode, you may not have a certified RFI, so devices usually use the Rejoose standard RFI or the percentage. Contact support@rejoose.com if you want to set up your facilities and RFI.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_KEY}".
All endpoints that need an API key are marked with a Requires API key badge in the documentation below.
You can create an API key in Rejoose e.hub®: open Developer → API keys and click Create API key.
API key abilities
When you create an API key in e.hub, you choose its abilities. An ability decides which endpoints the key can call. Each endpoint below shows the abilities it accepts next to API key ability. When it lists more than one, any one of them is enough. A key without a fitting ability gets 403 with {"data": null, "errors": {"forbidden": ["Invalid ability provided."]}, "status": 403}.
| Ability | What it opens |
|---|---|
API_EVOICE |
e.voice: generate, list and fetch e.voices, and the CSR report. Groups also need an e.hub Enterprise subscription. |
API_EVOICE_CIRCULARITY |
e.voice circularity: generate, list and fetch e.voice circularities and their PDF, and the RCIBR report. |
API_PRODUCT |
e.product: product lookup, bulk lookup and product changes. |
Some endpoints accept more than one ability: a queued report's status and download take API_EVOICE or API_EVOICE_CIRCULARITY, and Categories takes any of the three.
Give each key only the abilities its system needs.
Errors
A request that fails answers with an HTTP status code and a JSON body that says what went wrong. Each endpoint shows the errors that are specific to it in its example responses, and lists the shared ones under Other responses. Those link to the sections below.
| Status | When |
|---|---|
| 401 | No or invalid API key |
| 403 | The key or the account may not call the endpoint |
| 404 | No record with that id for your organisation |
| 422 | A parameter failed validation |
| 429 | Rate limit exceeded |
| 5xx | A problem on our side |
Unauthenticated (401)
The request carried no API key, or a key that is invalid or revoked. Send the key as Authorization: Bearer {YOUR_API_KEY}; see Authenticating requests.
{
"data": null,
"errors": {
"unauthenticated": [
"Unauthenticated."
]
},
"status": 401
}
Forbidden (403)
The key is valid, but it or your account may not call this endpoint. The cause decides the body.
The API key lacks the ability the endpoint needs – every endpoint. See API key abilities.
{
"data": null,
"errors": {
"forbidden": [
"Invalid ability provided."
]
},
"status": 403
}
Your subscription usage limit is reached – e.voice and e.voice circularity generate, and the report endpoints. The message names the product. e.product documents its own usage-limit responses on its endpoints.
{
"data": null,
"errors": {
"forbidden": [
"Your max limit on e.voice is reached. Contact us on \"sales@rejoose.com\" or \"+45 71 74 70 30\" to change your limit."
]
},
"status": 403
}
Your organisation is not a supplier partner – the report endpoints.
{
"data": null,
"errors": {
"forbidden": [
"Only supplier partners can use this endpoint."
]
},
"status": 403
}
Your account is restricted to sandbox mode and called the production environment – the report endpoints.
{
"data": null,
"errors": {
"forbidden": [
"Your account is restricted to sandbox mode. Please use the sandbox environment."
]
},
"status": 403
}
Your organisation has no e.hub Enterprise subscription – the group endpoints.
{
"data": null,
"errors": {
"forbidden": [
"You are not an enterprise partner."
]
},
"status": 403
}
Not found (404)
The id in the URL does not name a record of your organisation: it was never created, it is spelled differently, or it was not URL-encoded twice as described under IDs in URLs. A queued report also answers 404 once it is older than 7 days. The message names what was looked up.
{
"data": null,
"errors": {
"not_found": [
"Evoice with external_invoice_id 2024-001 not found"
]
},
"status": 404
}
The e.product lookup is the exception: a product without data answers 404 with the product echoed back and null carbon values, as shown on that endpoint.
Validation failed (422)
A query or body parameter did not pass the rules in the endpoint's parameter table. The body names each parameter with a dot path, such as client.name or products.0.brand, and lists its messages. Nothing was created or billed.
{
"data": null,
"errors": {
"country_code": [
"The country code field is required."
],
"products.0.brand": [
"The products.0.brand field is required."
]
},
"status": 422
}
An endpoint whose 422 body differs from this shape says so in its own 422 example.
Too many requests (429)
Every endpoint shares the per-minute limit described under Rate Limiting, and the report endpoints have a second limit of their own, 25 requests per minute per partner by default. Both answer with a Retry-After header and this body; the message names the limit.
{
"data": null,
"errors": {
"too_many_requests": [
"Too many requests. Please wait a moment and try again."
]
},
"status": 429
}
Server errors (5xx)
Something went wrong on our side. These are rare and safe to retry after a short wait. If the problem persists, contact support@rejoose.com.
500 – an unexpected error. We are notified automatically.
{
"data": null,
"errors": {
"internal_server_error": [
"Something went wrong. We have been notified and will fix it soon!"
]
},
"status": 500
}
503 – a service we depend on is temporarily unavailable: product data for e.product, e.voice, and e.voice circularity; the category catalogue for categories; PDF generation for reports. The message names the service.
{
"data": null,
"errors": {
"service_unavailable": [
"Product data is temporarily unavailable. Please try again in a few minutes."
]
},
"status": 503
}
An error that escapes the handling of the API itself answers with a short body:
{
"data": null,
"errors": {
"internal_server_error": [
"Server Error"
]
},
"status": 500
}
e.voice
e.voice – Carbon data on invoice level
The e.voice API enables the generation of an environmental invoice (e.voice), serving as the carbon counterpart to a financial invoice. It bridges financial transactions with their associated carbon impact, allowing businesses to track and report emissions seamlessly.
When using the e.voice API, you have flexible implementation options:
- The solution can be fully anonymized, using only unique identifiers known to you, or it can include customer names.
- Rejoose does not receive a copy of the financial invoice. Instead, only specific extracted data points are transmitted—just enough to determine the carbon footprint and link the e.voice with its corresponding financial transaction.
Upon a successful transaction, the API provides:
- Transaction details confirming all is good or other relevant error responses (see example response).
- Carbon data for the total transaction and individual products (raw data format). (optional)
- A base64-encoded PDF file (the e.voice document). (optional)
Keep in mind that you do not need to save the above data in your ERP system (or similar), as everything is archived for you in the
e.hub and for your customers via e.insights.
e.voice API – Options Explained
-
deferred:Specifies whether the e.voice generation should run as a background (deferred) job.
This is useful for large batches or when you want to avoid delays in your primary workflow. Settingdeferredtotrueallows the generation process to run asynchronously, reducing impact on real-time operations.
PollGET api/v3/evoices/{external_invoice_id}for the result:202while pending,200with the full e.voice when finalized or while it hasstatus: "updating", or200withstatus: "failed"and afailure_reasonif generation failed — the sameexternal_invoice_idcan then be re-submitted. During an update, top-level totals may not yet match the device rows. -
include_pdf:Specifies whether the API response should include a base64-encoded PDF file of the e.voice document.
Great for scenarios where you only need raw carbon data and want to reduce payload size. Setinclude_pdftofalseif you’re storing PDFs separately or handling document generation downstream. -
credit_note:Specifies whether the e.voice is a credit note, which reverses the carbon data recorded for a transaction. (amounts will be handled as absolute numbers)
Ideal for returns, corrections, or adjustments where you need to negate previously recorded carbon impacts. Settingcredit_notetotrueensures your carbon accounting stays accurate and reflects true net impacts. -
facility_external_id:Specifies which of your refurbishment facilities refurbished the devices on the e.voice, using the facility'sexternal_idfrom e.hub.
Use it when you refurbish at more than one facility. The refurbishment impact of each refurbished device then uses the certified RFI of that facility, for theexternal_invoice_date. When you leave it out, your default facility is used. It must be your own facility; the Rejoose standard facility cannot be used. See Refurbishment impact.
Quick tips
- Use
deferred: truefor better system performance and faster responses (a sustainable choice). - Set
include_pdf: falseif you only want to minimize response size and rely on retrieving data from e.hub and e.insights - Mark transactions as
credit_note: trueto define this is an credit note and return of products, and this will be visible in the carbon reporting.
Reading an e.voice
- Status.
finalizedis the normal state. A deferred generation answers 202 while it is pending. A refresh returns the full resource withstatus: "updating"; while it runs, top-level totals may not yet match the device rows. A failed generation returnsstatus: "failed"with afailure_reason, and the sameexternal_invoice_idcan be re-submitted. - Refurbishment impact. Each refurbished device is paid by your certified facility RFI, the Rejoose standard RFI, or your refurbishment percentage, and its
refurbishment_impact_basisandvarianttell you which. The e.voice carries the facility and RFI versions used. See Refurbishment impact for the details. - LCA split. Responses include
manufacturing_kg_co2_eq,transportation_kg_co2_eq, andeol_kg_co2_eqat e.voice and device level. - List rows. The list endpoint returns each e.voice with its totals and devices exactly as the single e.voice endpoint does, without the PDF.
Product data validation. After the request validation, each device is checked against the Rejoose product data. When a device is rejected there, the 422 errors object names it by its position in the array you sent, as products.N.<field> (N counts from 0 and follows the order of devices), and manufacturer_part_number stands for the device's external_id. When no single field can be named, errors is a plain message instead.
You can access more detailed information in the API documentation by expanding objects marked with a small black arrow (⯈), such as ⯈ client or ⯈ devices. Simply click the arrow to reveal additional data fields.
Generate an e.voice
Requires API keyGenerates the e.voice document and returns its data.
api/v3/evoices/generate
Received response
Request failed with error
{
"success": true,
"data": {
"external_invoice_id": "94825344-eb3a-4b5d-8ac8-6e462f37bba2"
}
}
{
"success": true,
"data": {
"external_invoice_id": "123456789",
"external_invoice_date": "2023-09-25",
"pdf_base64": "JVBERi0xLjcKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZwovT3V0bGluZXMgMiAwIFIKL1BhZ2VzIDMgMCBSID4+CmVuZG9iagoyIDAgb2JqCjw8IC9UeXBlIC9PdXRsaW5lcyAvQ291bnQgMCA+PgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0tpZHMgWzYgMCBSCl0KL0NvdW50IDEKL1Jlc291cmNlcyA8PAovUHJvY1NldCA0IDAgUgovRm9udCA8PCAKL0YxIDggMCBSCi9GMiA5IDAgUgovRjMgMTAgMCBSCj4+Cj4+Ci9NZWRpYUJveCBbMC4wMDAgMC4wMDAgNTk1LjI4MCA4NDEuODkwXQogPj4KZW5kb2JqCjQgMCBvYmoKWy9QREYgL1RleHQgXQplbmRvYmoKNSAwIG9iago8PAovUHJvZHVjZXIgKP7/AGQAbwBtAHAAZABmACAAMgAuADAALgAzACAAKwAgAEMAUABEAEYpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyNDAxMDUxMzIzMTArMDAnMDAnKQovTW9kRGF0ZSAoRDoyMDI0MDEwNTEzMjMxMCswMCcwMCcpCi9UaXRsZSAo/v8ARQB2AG8AaQBjAGUpCj4+CmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9QYWdlCi9NZWRpYUJveCBbMC4wMDAgMC4wMDAgNTk1LjI4MCA4NDEuODkwXQovUGFyZW50IDMgMCBSCi9Bbm5vdHMgWyAxMSAwIFIgXQovQ29udGVudHMgNyAwIFIKPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAyODM3ID4+CnN0cmVhbQp4nK2b23LcNhKG7/UUqORmt0qiiQNxyNXGsezaHCqxpdhV6/LFaIaSGM2Q8gxlRy+VZ9wGB2iCHhIYU/aFytVmA/g/NNANCD75eMJ0xoUkSuRZLgTZEG/gpjOsSSFlZrgYszin0EKzorNgu97wjtQn8LnSJM9YYeCnEIq8eXUCH5DPJCc/k/eEfIC/rMJBKWMHFfZoLWtycfJ6pLntzcnzS+xbs0wpQS5X5NlLRrjt6PKakPf/elP+1TS7kvx4f/HvD+TyZ3J+af0KCi0yRZQUmZTcO4JVOcerRzJwYAV0m0ccXE+hE4wz01JEhnf+7FNTLQdOhVRZbqAnY7JCMeyJZblz+gc/x0mVhejg46TKgrvZ8EDHLOLAIt00YzPeMGNSZVFkbDCp3oKTmuck/DmcVJZnhso9AE4UQru8rXbEkSPLpm4XVU3a25K0TbtYk/tts3pYtmS52F41NSk31W5XNfUuhOy7sFTzkS6gwW15XW7Lemmb7Vq/rupFvaygh3a7qHeLZQutZsFccFNAUHEipQY4hlBFQQAlBUykKaDBDiLtlIY/ASKE0QFF35xiCkLOAEZR5BnnCi0W45QnNxq+026po4UWGYRy57kfsFLQA5UZg2YgQjQVhMKwqPHjnVp63Chwss4m4/CFYygz7Ri+WLTlD4jn9fHCgV1WaBUIx00hIdx6GskC4WgJhI952h4KUNh7omWADKfAIaPwrxqYHDAbjWxR0Ex33gEzGjC7KO/bcnNVbgnsN4TB9M8BiJEDgzPwWRA5zpKMHCcviJycw/fyy8jJYQuBBTQvcnKYzdwcRs5/6/3ahiX4tABC/RhACf19uHj9aAn0RwMIPdEyIIcz4cjNDKAQXRhAkl8vlTbLM2kWV2eiWOkzky/ZmaDi6roslGHs6kkhBcOmnIYh5SzJkHKC+5CSBvZHmKZhSEkDyRLanRVS0lia+WFI/fSwa5tNuX1aPKF4jKeE+D56vHhvCcVH4wk9vWWIzU+DxzYvngbcwng6XzZnL7dVWa/Wj+SiWT/YpLcjv7arp0SRHSwHCH0UeUsqirzMIIo0hAPVX0YRWI3UM6NIC/iCjkRR81C320coOlZPS209ACyNEgD6uPEA0BIAiEVS74mWATqcCoduZiSF7MJIevHLkyIGBlUYHkaMs8QixldjmonQ01mSseZABLHmKrsvYk2ajBozM9YUzHvORmJtX75WdVvWu6p9fFq8IT6MtwQ+9ER86JnAF8blHh9aAnzRSEVPtAzA9xO5Bz8zUkPyYaRSiJqbZ3fvbgPiySOohFMd5VjMBMc1f1Jpm34KE0cfyaAxmR+eS47YjoNWYBCswE29b+XtoiXf/0DOf/r9JWgVcOIc84ayhYsRbwqjPa8/VduGvFs8klPbDmd0pInCiEzwkSZebcuyflut1+UpeVHWm8X2buBu7MAFKXSRSc29f8CUhCTHpwUWp21jel4uHu7v11VYEkzOipEQrWJ6WiZuGdBvaiLKvxeb+3X5n+3eP1s2m/Bs7yQUWmaiWw69RXUWOLnD4ZLC0hqzyAMLd5a+HW+ZPN7zg8M9+gq/SLH9vSVxZeP9Yfnl/iZlMDGX3TH+1bs/khMj7AYApfV0WxSWOD0tyN0N+en3wTWLgF2A6e66hQWu/YUOG36u9honeyo/xmOSmSw3kghNATmDvUrD0KEF6B4UwJ51ffy27taXMLZNu6tTGJ6BndBbpnZYcFSMdp+5iHIG2HEV3Vcfh6PYw4aBa8PgUzh6aDFyantBvo8jwFEGDLQyAwZjo7Z+TJhAL4NZkzB7Kb3WU0Ku6gWj5QjFVMMxXRTTkv9wV01Vfd0kZt8P2EkvQBFPK2eQ/7TSgXLOYE+kKj3TNq4hvoKp9pYjlDPYGHiup5W/fljULVQlcdU4WKdawr8Dz5RqzkSmpQpVw2YGu2hSte2QCRaoRssRqrkQUNDZ5ZFneqwmu1g29yXh4cbABWwB3LYvMtZfZkCnzud9t/UwUn78kIDlNX4lLEiSWrIAlr12lnk6RGyHjKsQlrccAUvkUP3KIgVrsIsKqClyJr8BLNTYr6dCsyQsIWB8RRhZBcgwPL1z2g4ZDyMLLcfAkiCYimlYv1bXZVtthr8+gMXPeYzWpqnb210CFSr8uriybrABhqjcASCFynoWMtx00RKgih0AAk9vOQJyYdOi4tOQu8Ji+FsdOAJ0W+JXxaNiBeBVSsJPzYswu0uaSSX67A5mriP7u0vkMDW5VmEid5ZUIndz2idymF3jDmcf06OKnZO4PSBaZ2gZRnJ41ciey99+vOTnfwbnpHE4Pvm5cfjkF8A5vvTxGRGRhUkmigzzHzLzliG01Gij0KjcD2aKGs1TtFCP69+v1zm0MJP2tIIsE6PV501PCy0DWsnRRmnZ+h2cJmlB1XfKk8C8pG8BzGdTBBZmmigwzJ0IzFuGwFKjjd5dwKKk0kSAKX0qUsBQUh/hXfKcAwwzKgIL800MWJ8/PTC0DIAlRxsFZuR+MFPAFEvRQj3fILwwqfa0fFJN0OpTqKeFloBWNKn2nt4y4JzUGeNcCMjYsWxRMHWqUqgx+wUJqzsgzmGNp0ZkHR7CYqz7M6InhpYBsfRwY8hohwy8FcuUkSM1YVk3n5qwXkEXaQ8qI5Qvb6v67m1l3zuQcybOQGxQt1BYp3kmC8udwTnHnfVAk7RFOTRqV7JrVGMR9GbOzbOvbAANMyasbJwlVdk4pn1lI+xFnvyisrG3OFrOrGyE7kZ0+Fv4384uDNXP//fLi/Pz57PU+yoF5Yd5MiofaxLU7y1DAD6WHYF5VcoUgUGV8vXVRq86SHYx1X1t4VWjZaAaKTrV86qNKdVKsFM5S7ivGlB4mLSiwrFGQOHeMhTuQc4RLvj+6dekcE5P2RzdmPxRd5hEYrr7VO91o2WgGzn2YT4j+U/qnhXmmMR71T6JJ1T3KdurRkugOprEe09vGfBC/nPiBJP45AJR/FTPQYa5GJGFp6wYsj7zeuFoGQjH9BJkhBm5uOBgHXnMdrHY7B7qm9FkLERm9AitV4v14u9HcsE4+XPdbhfJY7LLabbGp6rPafhbzRm/IbCPcikN06+zRNJv5wiDge0wdHSWVN52/Pu8DX5cqi/y9qTG6O/MXd6G7YyxkUc+3f3O7ugiMxhDFylzOGNgI+gwMcdAoyeSRs8E6XAB7FGjZcA6LdTCTt3ZOGdfX8wKRl8NIaQwj0ej0XsiJPRMhWNQNbl49JZhQKZ0HlVHTUUkO/62x/XvN+w5nLH+6jkHZUOMM3r2nL1ngnNYp+05o2XAOanzqMptirMx9NQcfU/0LVD7ig9Rh5VKFLX3RNTomUIdVIYOtbcMUad0HnXDNIWa52ZQJMdvmPpV1ZVtc1BjkYmowyInhho9ETV6JlCHxegeNVoGqJM6IzssjuUbhCOWpD0jX5ImGKFnz8h7JhiFpeueEVoCRtFitvf0lgHdJKF4MWsfH0X2DPc0ZBDK4035moiq7hnbwTOeN+X1w/aq2t2WK7IqP1XLckcWMDz7rglMn6v2lixq8l3yKobaJ4R2n5vsKfkkhhY2yUcG+1367RQ1sN1C0Qy1sza6vxAy/mniulrekdty2/3fmMUS9O6IfwO1KdvbZtWsm5tH8vm2aktyv7gvt1mk1y6oxeDPQc3jh6S6t8/2SabMqGDesA+1qeJeZ4wW9kZLIxD7H8AOX2+RM2iYwse5hL++rOpdWe8+lX8RGPEZYbZNMG/LVbmt7nZX5fYmG3vAZl8JFXbNsowrOdIlfYbv5f4P4se8CQplbmRzdHJlYW0KZW5kb2JqCjggMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMQovQmFzZUZvbnQgL1RpbWVzLVJvbWFuCi9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovTmFtZSAvRjIKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZAovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMwovQmFzZUZvbnQgL1RpbWVzLUJvbGQKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovQSAxMiAwIFIKL0JvcmRlciBbMCAwIDBdCi9IIC9JCi9SZWN0IFsgMTk5LjEzNzggMTguMjE4NSAzOTYuMTQyMiAyNy4wMTg1IF0KPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwczovL3Jlam9vc2UuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA2L0V2b2ljZV9FeHBsYWluZXIucGRmKQo+PgplbmRvYmoKeHJlZgowIDEzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDc0IDAwMDAwIG4gCjAwMDAwMDAxMjAgMDAwMDAgbiAKMDAwMDAwMDI5NSAwMDAwMCBuIAowMDAwMDAwMzI0IDAwMDAwIG4gCjAwMDAwMDA0OTcgMDAwMDAgbiAKMDAwMDAwMDYxOSAwMDAwMCBuIAowMDAwMDAzNTI5IDAwMDAwIG4gCjAwMDAwMDM2MzggMDAwMDAgbiAKMDAwMDAwMzc1MCAwMDAwMCBuIAowMDAwMDAzODU5IDAwMDAwIG4gCjAwMDAwMDM5ODUgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxMwovUm9vdCAxIDAgUgovSW5mbyA1IDAgUgovSURbPGQ0MjEyYTIwY2E1NTc3NTg1NGNiOWUyNmM3NGRiYjdiPjxkNDIxMmEyMGNhNTU3NzU4NTRjYjllMjZjNzRkYmI3Yj5dCj4+CnN0YXJ0eHJlZgo0MTA0CiUlRU9GCg==",
"country_code": "DK",
"facility_external_id": "CPH-01",
"rfi_external_id": "CPH-01-2023",
"rfi_version": 1,
"standard_rfi_external_id": "standard-2023",
"standard_rfi_version": 1,
"carbon_intensity_gram": 123,
"tec_annual_kwh": 478.65,
"total_kg_co2_eq": 1301.51,
"manufacturing_kg_co2_eq": 650.25,
"transportation_kg_co2_eq": 50.13,
"eol_kg_co2_eq": 53.52,
"status": "finalized",
"type": "evoice",
"source_type": "api",
"created_at": "2024-01-05T13:11:49.000000Z",
"updated_at": "2024-01-05T13:11:50.000000Z",
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"sender": {
"name": "Green Supply Co. Copenhagen Branch",
"company_id": "DK12345678",
"vat_number": "DK12345678",
"address": "Havnegade 12",
"address2": "Building B",
"zip_code": "1058",
"city": "Copenhagen",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"quantity": 10,
"lifetime_months": 72,
"tec_annual_kwh": 377.25,
"scope_2_kg_co2_eq": 278.41,
"scope_3_kg_co2_eq": 249.27,
"total_kg_co2_eq": 527.68,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"eol_kg_co2_eq": 18.42,
"refurbished": true,
"variant": "full",
"refurbishment_impact_basis": "rfi_category",
"excluded": false,
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/92ff91678f38486c",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=D1010052",
"avoided_emissions_kg_co2_eq": 256.68
},
{
"external_id": "SM-S918BZKDEEB",
"original_manufacturer_part_number": null,
"brand": "Samsung",
"model_name": "Galaxy S23 Ultra",
"category": "Smartphone",
"quantity": 10,
"lifetime_months": 30,
"tec_annual_kwh": 101.4,
"scope_2_kg_co2_eq": 31.18,
"scope_3_kg_co2_eq": 742.65,
"total_kg_co2_eq": 773.83,
"manufacturing_kg_co2_eq": 650.25,
"transportation_kg_co2_eq": 50.13,
"eol_kg_co2_eq": 35.1,
"refurbished": false,
"variant": null,
"refurbishment_impact_basis": null,
"excluded": false,
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null,
"avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/123456789",
"pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf",
"base_64_pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf?base64=1"
}
}
}
{
"success": true,
"data": {
"external_invoice_id": "123456789",
"external_invoice_date": "2023-09-25",
"pdf_base64": "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Ci9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovTmFtZSAvRjIKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZAovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMwovQmFzZUZvbnQgL1RpbWVzLUJvbGQKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovQSAxMiAwIFIKL0JvcmRlciBbMCAwIDBdCi9IIC9JCi9SZWN0IFsgMTk5LjEzNzggMTguMjE4NSAzOTYuMTQyMiAyNy4wMTg1IF0KPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwczovL3Jlam9vc2UuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA2L0V2b2ljZV9FeHBsYWluZXIucGRmKQo+PgplbmRvYmoKeHJlZgowIDEzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDc0IDAwMDAwIG4gCjAwMDAwMDAxMjAgMDAwMDAgbiAKMDAwMDAwMDI5NSAwMDAwMCBuIAowMDAwMDAwMzI0IDAwMDAwIG4gCjAwMDAwMDA0OTcgMDAwMDAgbiAKMDAwMDAwMDYxOSAwMDAwMCBuIAowMDAwMDAzNTI5IDAwMDAwIG4gCjAwMDAwMDM2MzggMDAwMDAgbiAKMDAwMDAwMzc1MCAwMDAwMCBuIAowMDAwMDAzODU5IDAwMDAwIG4gCjAwMDAwMDM5ODUgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxMwovUm9vdCAxIDAgUgovSW5mbyA1IDAgUgovSURbPGQ0MjEyYTIwY2E1NTc3NTg1NGNiOWUyNmM3NGRiYjdiPjxkNDIxMmEyMGNhNTU3NzU4NTRjYjllMjZjNzRkYmI3Yj5dCj4+CnN0YXJ0eHJlZgo0MTA0CiUlRU9GCg==",
"country_code": "DK",
"facility_external_id": "CPH-01",
"rfi_external_id": "CPH-01-2023",
"rfi_version": 1,
"standard_rfi_external_id": "standard-2023",
"standard_rfi_version": 1,
"carbon_intensity_gram": 123,
"tec_annual_kwh": 478.65,
"total_kg_co2_eq": -1301.51,
"manufacturing_kg_co2_eq": -650.25,
"transportation_kg_co2_eq": -50.13,
"eol_kg_co2_eq": -53.52,
"status": "finalized",
"type": "credit_note",
"source_type": "api",
"created_at": "2024-01-05T13:11:49.000000Z",
"updated_at": "2024-01-05T13:11:50.000000Z",
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"sender": {
"name": "Green Supply Co. Copenhagen Branch",
"company_id": "DK12345678",
"vat_number": "DK12345678",
"address": "Havnegade 12",
"address2": "Building B",
"zip_code": "1058",
"city": "Copenhagen",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"quantity": 10,
"lifetime_months": 72,
"tec_annual_kwh": 377.25,
"scope_2_kg_co2_eq": -278.41,
"scope_3_kg_co2_eq": -249.27,
"total_kg_co2_eq": -527.68,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"eol_kg_co2_eq": -18.42,
"refurbished": true,
"variant": "full",
"refurbishment_impact_basis": "rfi_category",
"excluded": false,
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/92ff91678f38486c",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=D1010052",
"avoided_emissions_kg_co2_eq": -256.68
},
{
"external_id": "SM-S918BZKDEEB",
"original_manufacturer_part_number": null,
"brand": "Samsung",
"model_name": "Galaxy S23 Ultra",
"category": "Smartphone",
"quantity": 10,
"lifetime_months": 30,
"tec_annual_kwh": 101.4,
"scope_2_kg_co2_eq": -31.18,
"scope_3_kg_co2_eq": -742.65,
"total_kg_co2_eq": -773.83,
"manufacturing_kg_co2_eq": -650.25,
"transportation_kg_co2_eq": -50.13,
"eol_kg_co2_eq": -35.1,
"refurbished": false,
"variant": null,
"refurbishment_impact_basis": null,
"excluded": false,
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null,
"avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/123456789",
"pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf",
"base_64_pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf?base64=1"
}
}
}
Retrieve an e.voice
Requires API keyReturns one e.voice with its device lines and, by default, the PDF.
api/v3/evoices/{external_invoice_id}
Received response
Request failed with error
{
"success": true,
"data": {
"external_invoice_id": "123456789",
"external_invoice_date": "2023-09-25",
"pdf_base64": "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Ci9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovTmFtZSAvRjIKL0Jhc2VGb250IC9IZWx2ZXRpY2EtQm9sZAovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwo+PgplbmRvYmoKMTAgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9GMwovQmFzZUZvbnQgL1RpbWVzLUJvbGQKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKPj4KZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovQSAxMiAwIFIKL0JvcmRlciBbMCAwIDBdCi9IIC9JCi9SZWN0IFsgMTk5LjEzNzggMTguMjE4NSAzOTYuMTQyMiAyNy4wMTg1IF0KPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwczovL3Jlam9vc2UuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA2L0V2b2ljZV9FeHBsYWluZXIucGRmKQo+PgplbmRvYmoKeHJlZgowIDEzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDc0IDAwMDAwIG4gCjAwMDAwMDAxMjAgMDAwMDAgbiAKMDAwMDAwMDI5NSAwMDAwMCBuIAowMDAwMDAwMzI0IDAwMDAwIG4gCjAwMDAwMDA0OTcgMDAwMDAgbiAKMDAwMDAwMDYxOSAwMDAwMCBuIAowMDAwMDAzNTI5IDAwMDAwIG4gCjAwMDAwMDM2MzggMDAwMDAgbiAKMDAwMDAwMzc1MCAwMDAwMCBuIAowMDAwMDAzODU5IDAwMDAwIG4gCjAwMDAwMDM5ODUgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxMwovUm9vdCAxIDAgUgovSW5mbyA1IDAgUgovSURbPGQ0MjEyYTIwY2E1NTc3NTg1NGNiOWUyNmM3NGRiYjdiPjxkNDIxMmEyMGNhNTU3NzU4NTRjYjllMjZjNzRkYmI3Yj5dCj4+CnN0YXJ0eHJlZgo0MTA0CiUlRU9GCg==",
"country_code": "DK",
"facility_external_id": "CPH-01",
"rfi_external_id": "CPH-01-2023",
"rfi_version": 1,
"standard_rfi_external_id": "standard-2023",
"standard_rfi_version": 1,
"carbon_intensity_gram": 123,
"tec_annual_kwh": 478.65,
"total_kg_co2_eq": 1301.51,
"manufacturing_kg_co2_eq": 650.25,
"transportation_kg_co2_eq": 50.13,
"eol_kg_co2_eq": 53.52,
"status": "finalized",
"type": "evoice",
"source_type": "api",
"created_at": "2024-01-05T13:11:49.000000Z",
"updated_at": "2024-01-05T13:11:50.000000Z",
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"sender": {
"name": "Green Supply Co. Copenhagen Branch",
"company_id": "DK12345678",
"vat_number": "DK12345678",
"address": "Havnegade 12",
"address2": "Building B",
"zip_code": "1058",
"city": "Copenhagen",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"quantity": 10,
"lifetime_months": 72,
"tec_annual_kwh": 377.25,
"scope_2_kg_co2_eq": 278.41,
"scope_3_kg_co2_eq": 249.27,
"total_kg_co2_eq": 527.68,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"eol_kg_co2_eq": 18.42,
"refurbished": true,
"variant": "full",
"refurbishment_impact_basis": "rfi_category",
"excluded": false,
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/92ff91678f38486c",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=D1010052",
"avoided_emissions_kg_co2_eq": 256.68
},
{
"external_id": "SM-S918BZKDEEB",
"original_manufacturer_part_number": null,
"brand": "Samsung",
"model_name": "Galaxy S23 Ultra",
"category": "Smartphone",
"quantity": 10,
"lifetime_months": 30,
"tec_annual_kwh": 101.4,
"scope_2_kg_co2_eq": 31.18,
"scope_3_kg_co2_eq": 742.65,
"total_kg_co2_eq": 773.83,
"manufacturing_kg_co2_eq": 650.25,
"transportation_kg_co2_eq": 50.13,
"eol_kg_co2_eq": 35.1,
"refurbished": false,
"variant": null,
"refurbishment_impact_basis": null,
"excluded": false,
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null,
"avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/123456789",
"pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf",
"base_64_pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf?base64=1"
}
}
}
{
"success": true,
"data": {
"external_invoice_id": "94825344-eb3a-4b5d-8ac8-6e462f37bba2",
"status": "failed",
"failure_reason": "Product data service is temporarily unavailable. Please try again later."
}
}
{
"success": true,
"data": {
"external_invoice_id": "94825344-eb3a-4b5d-8ac8-6e462f37bba2",
"status": "pending"
}
}
Download an e.voice as PDF
Requires API keyReturns the e.voice PDF: the current document, or with changes=true the changes document, which is the same document with an old › new marker on every value an update changed since it was generated (each marker shows the field's most recent change). An e.voice that has never been updated has no changes document yet.
api/v3/evoices/{external_invoice_id}/pdf
Received response
Request failed with error
application/pdf The PDF file. The changes document also carries the <code>X-Evoice-Version</code> header with the version it was rendered at.
{
"success": true,
"data": {
"external_invoice_id": "94825344-eb3a-4b5d-8ac8-6e462f37bba2",
"status": "pending"
}
}
{
"data": null,
"errors": {
"conflict": [
"Evoice with external_invoice_id 123456789 failed and has no PDF. Generate it again to replace it."
]
},
"status": 409
}
{
"data": null,
"errors": {
"conflict": [
"Evoice with external_invoice_id 123456789 has no change history yet. The changes document exists once an update has changed it."
]
},
"status": 409
}
List e.voices
Requires API keyOne page of your e.voices, newest first, each with its device lines but without the PDF.
api/v3/evoices
Received response
Request failed with error
{
"data": {
"items": [
{
"external_invoice_id": "123456789",
"external_invoice_date": "2025-09-25",
"status": "finalized",
"type": "evoice",
"country_code": "GB",
"total_kg_co2_eq": 1234.56,
"manufacturing_kg_co2_eq": 912.4,
"transportation_kg_co2_eq": 103.7,
"eol_kg_co2_eq": 218.46,
"devices_count": 1,
"versions_count": 1,
"created_at": "2025-09-25T10:12:33.000000Z",
"updated_at": "2025-10-02T08:00:00.000000Z",
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"quantity": 10,
"lifetime_months": 72,
"tec_annual_kwh": 377.25,
"scope_2_kg_co2_eq": 278.41,
"scope_3_kg_co2_eq": 249.27,
"total_kg_co2_eq": 527.68,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"eol_kg_co2_eq": 18.42,
"refurbished": true,
"variant": "full",
"refurbishment_impact_basis": "rfi_category",
"excluded": false,
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/92ff91678f38486c",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=D1010052",
"avoided_emissions_kg_co2_eq": 256.68
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/123456789",
"pdf": "https://app.rejoose.com/api/v3/evoices/123456789/pdf"
}
}
],
"filters": {
"from": "2025-01-01",
"to": "2025-12-31",
"date_type": "external_invoice_date",
"organization_id": null,
"group_slug": null,
"company_ids": null,
"search": null,
"status": null,
"evoice_type": null,
"updated_filter": null,
"metric": null,
"metric_min": null,
"metric_max": null
},
"unit": "metric",
"pagination": {
"current_page": 1,
"last_page": 4,
"per_page": 10,
"total": 37,
"next_page_url": "https://app.rejoose.com/api/v3/evoices?page=2",
"prev_page_url": null
}
},
"errors": null,
"status": 200
}
List e.voice clients
Requires API keyThe clients you have sent e.voices to, one row per client.
Each client is listed once, told apart by organization_id, the customer id you send with each e.voice. subsidiaries lists the names, company IDs and countries your e.voices gave that client, one entry per company ID and country; names joins the names.
Search. search finds clients whose organisation id, or a subsidiary's name or company ID, has a word that starts with each word of the text: search=friendly finds "Eco-Friendly Solutions Ltd" and search=DK3333 finds company ID DK33334444, but search=3333 does not.
Paging. 10 clients per page by default, 100 at most. pagination.total is the number of clients found. Rows are sorted by organization_id.
Tip. Use the organization_id of a row as the organization_id filter of List e.voices to get that client's e.voices.
api/v3/evoices/clients
Received response
Request failed with error
{
"data": {
"items": [
{
"organization_id": "EcoFriendly-4987",
"names": "Eco-Friendly Solutions Ltd",
"subsidiaries": [
{
"name": "Eco-Friendly Solutions Ltd",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"country_code": "DK"
}
]
},
{
"organization_id": "NordicOffice-2210",
"names": "Nordic Office AB, Nordic Office Supplies A/S",
"subsidiaries": [
{
"name": "Nordic Office AB",
"company_id": "SE556677889901",
"vat_number": "SE556677889901",
"country_code": "SE"
},
{
"name": "Nordic Office Supplies A/S",
"company_id": "DK22104411",
"vat_number": "DK22104411",
"country_code": "DK"
}
]
}
],
"pagination": {
"current_page": 1,
"last_page": 4,
"per_page": 10,
"total": 37,
"next_page_url": "https://app.rejoose.com/api/v3/evoices/clients?page=2",
"prev_page_url": null
}
},
"errors": null,
"status": 200
}
e.voice - circularity
Provides carbon footprint and avoided emissions data for IT products in the ITAD industry. This API is used when receiving used IT products for refurbishment or selling refurbished products for reuse.
The response includes:
- Avoided emissions from refurbishing the products (kg CO2e).
- Carbon impact of the refurbishment process itself (kg CO2e).
- When devices have
recycled=true: avoided e-waste (kg), avoided emissions from recycling (kg CO2e), andmaterial_flowwith detailed component breakdown at the document level.
The two avoided e-waste figures use different conventions:
refurbishment_avoided_e_waste_kgis the full device weight retained in use, because refurbishing keeps the whole device out of the waste stream.recycling_avoided_e_waste_kgis the mass actually recovered as secondary material, so it is smaller than the device weight and matches the recovered mass inmaterial_flow.
Fields per device. Every caller receives the same fields: e.voice circularities have no enterprise-only fields. Refurbished devices carry refurbishment_impact_basis, variant and rfi_per_unit_kg_co2_eq; devices with recycled=true carry recycling_avoided_e_waste_kg and recycling_avoided_emissions_kg_co2_eq, and the document carries material_flow. The list endpoint returns each document with its totals and devices exactly as the single document endpoint does, without material_flow.
Refurbishment impact. Each refurbished device is paid by your certified facility RFI, the Rejoose standard RFI, or your refurbishment percentage, and its refurbishment_impact_basis tells you which. The document carries the facility and RFI versions used. The refurbishment fields are the values set when the document was generated: the daily update refreshes a device's weight and footprint, but keeps the same RFI. See Refurbishment impact for the details.
Device weight. Transport is the only part of the certified figure that depends on the device's weight, so each device shows two parts: rfi_per_unit_fixed_kg_co2_eq (labour, parts, storage, and packaging) and rfi_transport_co2_eq_per_tonne (kg CO₂e per tonne of device). rfi_per_unit_kg_co2_eq = rfi_per_unit_fixed_kg_co2_eq + rfi_transport_co2_eq_per_tonne × weight_kg / 1000. weight_kg comes from Rejoose's product data (weight_from_product says whether it is the product's own weight or the category average). A device without a known weight uses the variant's average device weight.
Both datasets are used for customer reporting and internal documentation.
Generate an e.voice circularity
Requires API keyGenerates the e.voice circularity and returns its data.
api/v3/evoices/circularity/generate
Received response
Request failed with error
{
"data": {
"id": 48213,
"external_doc_id": "ab57e0f1-2396-430c-ba5a-339d77fda792",
"external_doc_date": "2026-01-22",
"country_code": "DK",
"batch_id": "batch-2026-Q1-electronics",
"facility_external_id": null,
"rfi_external_id": null,
"rfi_version": null,
"standard_rfi_external_id": "standard-2026",
"standard_rfi_version": 1,
"e_waste_kg_co2_eq": 212.81,
"refurbishment_impact_kg_co2_eq": 75.088,
"refurbishment_offset_kg_co2_eq": 872.481,
"refurbishment_avoided_e_waste_kg": 10,
"recycling_avoided_emissions_kg_co2_eq": 52.404,
"recycling_avoided_e_waste_kg": 1.93,
"material_flow": {
"total_input_kg": 352.59,
"total_recovered_kg": 301.43,
"recovered_percentage": 85.5,
"components": [
{
"name": "Ferrous Metal",
"input_percentage": 0.4,
"input_kg": 1.53,
"recovered_kg": 1.2,
"recovery_rate": 78.4,
"secondary_summary": "Steel (85%), Iron (15%)"
},
{
"name": "Printed Circuit Board",
"input_percentage": 0.1,
"input_kg": 0.36,
"recovered_kg": 0.29,
"recovery_rate": 80.6,
"secondary_summary": "Copper (45%), Gold (30%), Other (25%)"
},
{
"name": "Plastic",
"input_percentage": 0.1,
"input_kg": 0.31,
"recovered_kg": 0.22,
"recovery_rate": 71,
"secondary_summary": "Recycled Plastic (100%)"
},
{
"name": "Other",
"input_percentage": 0.1,
"input_kg": 0.39,
"recovered_kg": 0.22,
"recovery_rate": 56.4,
"secondary_summary": "Mixed Materials (100%)"
},
{
"name": "Batteries (alkaline)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 33.5,
"recovery_rate": 67,
"secondary_summary": "Zinc (40%), Manganese (35%), Steel (25%)"
},
{
"name": "Batteries (lead-acid)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 48,
"recovery_rate": 96,
"secondary_summary": "Lead (70%), Plastic (20%), Sulfuric Acid (10%)"
},
{
"name": "Laser cartridges",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 42.5,
"recovery_rate": 85,
"secondary_summary": "Plastic (60%), Toner (25%), Metal (15%)"
},
{
"name": "Metals (ferrous)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 49,
"recovery_rate": 98,
"secondary_summary": "Steel (90%), Iron (10%)"
},
{
"name": "Metals (non-ferrous)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 47.5,
"recovery_rate": 95,
"secondary_summary": "Aluminium (60%), Copper (40%)"
},
{
"name": "Cardboard (corrugated)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 46.5,
"recovery_rate": 93,
"secondary_summary": "Corrugated Fiber (100%)"
},
{
"name": "Plastics (mixed)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 32.5,
"recovery_rate": 65,
"secondary_summary": "Mixed Post-Consumer Plastic (100%)"
}
]
},
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"sender": {
"name": "Green Supply Co. Copenhagen Branch",
"company_id": "DK12345678",
"vat_number": "DK12345678",
"address": "Havnegade 12",
"address2": "Building B",
"zip_code": "1058",
"city": "Copenhagen",
"country": "Denmark"
},
"devices": [
{
"external_id": "20L5S1HE00",
"amount": 5,
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"weight_kg": 2,
"weight_from_product": true,
"excluded": false,
"recycled": false,
"variant": "full",
"data_method": "CA+",
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://www.epeat.net/registry/20L5S1HE00",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/20L5S1HE00",
"refurbishment_impact_percentage": 0.05,
"refurbishment_impact_kg_co2_eq": 75.088,
"refurbishment_offset_kg_co2_eq": 872.481,
"refurbishment_impact_basis": "standard_category",
"rfi_per_unit_kg_co2_eq": 15.017664,
"rfi_per_unit_fixed_kg_co2_eq": 14.9,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"refurbishment_avoided_e_waste_kg": 10,
"recycling_avoided_e_waste_kg": 0,
"recycling_avoided_emissions_kg_co2_eq": 0
},
{
"external_id": "RE8989121",
"amount": 2,
"brand": "HP",
"model_name": "EliteBook 840 G5",
"category": "Notebook",
"weight_kg": 2.59,
"weight_from_product": false,
"excluded": false,
"recycled": true,
"variant": null,
"data_method": "CA",
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null,
"refurbishment_impact_percentage": null,
"refurbishment_impact_kg_co2_eq": 0,
"refurbishment_offset_kg_co2_eq": 0,
"refurbishment_impact_basis": null,
"rfi_per_unit_kg_co2_eq": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"refurbishment_avoided_e_waste_kg": 0,
"recycling_avoided_e_waste_kg": 1.93,
"recycling_avoided_emissions_kg_co2_eq": 52.404
}
],
"created_at": "2026-01-24T11:33:10.000000Z",
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792",
"pdf": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792/pdf",
"base_64_pdf": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792/pdf?base64=1"
}
},
"errors": null,
"status": 201
}
Retrieve an e.voice circularity
Requires API keyReturns one e.voice circularity with its device lines and material_flow.
api/v3/evoices/circularity/{external_doc_id}
Received response
Request failed with error
{
"data": {
"id": 48213,
"external_doc_id": "ab57e0f1-2396-430c-ba5a-339d77fda792",
"external_doc_date": "2026-01-22",
"country_code": "DK",
"batch_id": "batch-2026-Q1-electronics",
"facility_external_id": null,
"rfi_external_id": null,
"rfi_version": null,
"standard_rfi_external_id": "standard-2026",
"standard_rfi_version": 1,
"e_waste_kg_co2_eq": 212.81,
"refurbishment_impact_kg_co2_eq": 75.088,
"refurbishment_offset_kg_co2_eq": 872.481,
"refurbishment_avoided_e_waste_kg": 10,
"recycling_avoided_emissions_kg_co2_eq": 52.404,
"recycling_avoided_e_waste_kg": 1.93,
"material_flow": {
"total_input_kg": 352.59,
"total_recovered_kg": 301.43,
"recovered_percentage": 85.5,
"components": [
{
"name": "Ferrous Metal",
"input_percentage": 0.4,
"input_kg": 1.53,
"recovered_kg": 1.2,
"recovery_rate": 78.4,
"secondary_summary": "Steel (85%), Iron (15%)"
},
{
"name": "Printed Circuit Board",
"input_percentage": 0.1,
"input_kg": 0.36,
"recovered_kg": 0.29,
"recovery_rate": 80.6,
"secondary_summary": "Copper (45%), Gold (30%), Other (25%)"
},
{
"name": "Plastic",
"input_percentage": 0.1,
"input_kg": 0.31,
"recovered_kg": 0.22,
"recovery_rate": 71,
"secondary_summary": "Recycled Plastic (100%)"
},
{
"name": "Other",
"input_percentage": 0.1,
"input_kg": 0.39,
"recovered_kg": 0.22,
"recovery_rate": 56.4,
"secondary_summary": "Mixed Materials (100%)"
},
{
"name": "Batteries (alkaline)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 33.5,
"recovery_rate": 67,
"secondary_summary": "Zinc (40%), Manganese (35%), Steel (25%)"
},
{
"name": "Batteries (lead-acid)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 48,
"recovery_rate": 96,
"secondary_summary": "Lead (70%), Plastic (20%), Sulfuric Acid (10%)"
},
{
"name": "Laser cartridges",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 42.5,
"recovery_rate": 85,
"secondary_summary": "Plastic (60%), Toner (25%), Metal (15%)"
},
{
"name": "Metals (ferrous)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 49,
"recovery_rate": 98,
"secondary_summary": "Steel (90%), Iron (10%)"
},
{
"name": "Metals (non-ferrous)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 47.5,
"recovery_rate": 95,
"secondary_summary": "Aluminium (60%), Copper (40%)"
},
{
"name": "Cardboard (corrugated)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 46.5,
"recovery_rate": 93,
"secondary_summary": "Corrugated Fiber (100%)"
},
{
"name": "Plastics (mixed)",
"input_percentage": 14.2,
"input_kg": 50,
"recovered_kg": 32.5,
"recovery_rate": 65,
"secondary_summary": "Mixed Post-Consumer Plastic (100%)"
}
]
},
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"sender": {
"name": "Green Supply Co. Copenhagen Branch",
"company_id": "DK12345678",
"vat_number": "DK12345678",
"address": "Havnegade 12",
"address2": "Building B",
"zip_code": "1058",
"city": "Copenhagen",
"country": "Denmark"
},
"devices": [
{
"external_id": "20L5S1HE00",
"amount": 5,
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"weight_kg": 2,
"weight_from_product": true,
"excluded": false,
"recycled": false,
"variant": "full",
"data_method": "CA+",
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://www.epeat.net/registry/20L5S1HE00",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/20L5S1HE00",
"refurbishment_impact_percentage": 0.05,
"refurbishment_impact_kg_co2_eq": 75.088,
"refurbishment_offset_kg_co2_eq": 872.481,
"refurbishment_impact_basis": "standard_category",
"rfi_per_unit_kg_co2_eq": 15.017664,
"rfi_per_unit_fixed_kg_co2_eq": 14.9,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"refurbishment_avoided_e_waste_kg": 10,
"recycling_avoided_e_waste_kg": 0,
"recycling_avoided_emissions_kg_co2_eq": 0
},
{
"external_id": "RE8989121",
"amount": 2,
"brand": "HP",
"model_name": "EliteBook 840 G5",
"category": "Notebook",
"weight_kg": 2.59,
"weight_from_product": false,
"excluded": false,
"recycled": true,
"variant": null,
"data_method": "CA",
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null,
"refurbishment_impact_percentage": null,
"refurbishment_impact_kg_co2_eq": 0,
"refurbishment_offset_kg_co2_eq": 0,
"refurbishment_impact_basis": null,
"rfi_per_unit_kg_co2_eq": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"refurbishment_avoided_e_waste_kg": 0,
"recycling_avoided_e_waste_kg": 1.93,
"recycling_avoided_emissions_kg_co2_eq": 52.404
}
],
"created_at": "2026-01-24T11:33:10.000000Z",
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792",
"pdf": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792/pdf",
"base_64_pdf": "https://app.rejoose.com/api/v3/evoices/circularity/ab57e0f1-2396-430c-ba5a-339d77fda792/pdf?base64=1"
}
},
"errors": null,
"status": 200
}
Download an e.voice circularity as PDF
Requires API keyReturns the e.voice circularity PDF: the current document, or with changes=true the changes document, which is the same document with an old › new marker on every value an update changed since it was generated (each marker shows the field's most recent change). A document that has never been updated has no changes document yet.
api/v3/evoices/circularity/{external_doc_id}/pdf
Received response
Request failed with error
application/pdf The PDF file
{
"data": null,
"errors": {
"conflict": [
"Evoice circularity with external document id ab57e0f1-2396-430c-ba5a-339d77fda792 failed and has no PDF. Generate it again to replace it."
]
},
"status": 409,
"meta": {
"external_doc_id": "ab57e0f1-2396-430c-ba5a-339d77fda792",
"status": "failed",
"failure_reason": "E.voice generation failed. Please try again later or contact support if the problem continues."
}
}
{
"data": null,
"errors": {
"conflict": [
"Evoice circularity with external document id ab57e0f1-2396-430c-ba5a-339d77fda792 has no change history yet. The changes document exists once an update has changed it."
]
},
"status": 409,
"meta": {
"external_doc_id": "ab57e0f1-2396-430c-ba5a-339d77fda792",
"status": "finalized",
"versions_count": 0
}
}
List e.voice circularities
Requires API keyOne page of your e.voice circularities, newest first, each with its device lines but without material_flow.
api/v3/evoices/circularity
Received response
Request failed with error
{
"data": {
"items": [
{
"external_doc_id": "123456789",
"external_doc_date": "2025-09-25",
"status": "finalized",
"country_code": "GB",
"batch_id": "batch-2024-Q1-electronics",
"e_waste_kg_co2_eq": 812.4,
"refurbishment_impact_kg_co2_eq": 96.2,
"refurbishment_offset_kg_co2_eq": 1540.7,
"refurbishment_avoided_e_waste_kg": 210.5,
"recycling_avoided_emissions_kg_co2_eq": 331.9,
"recycling_avoided_e_waste_kg": 88.3,
"devices_count": 1,
"versions_count": 0,
"last_updated_at": null,
"created_at": "2025-09-25T10:12:33.000000Z",
"unit": "metric",
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"devices": [
{
"external_id": "20L5S1HE00",
"amount": 5,
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"weight_kg": 2,
"weight_from_product": true,
"excluded": false,
"recycled": false,
"variant": "full",
"data_method": "CA+",
"epeat_tier": "silver",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://www.epeat.net/registry/20L5S1HE00",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/20L5S1HE00",
"refurbishment_impact_percentage": 0.05,
"refurbishment_impact_kg_co2_eq": 75.088,
"refurbishment_offset_kg_co2_eq": 872.481,
"refurbishment_impact_basis": "standard_category",
"rfi_per_unit_kg_co2_eq": 15.017664,
"rfi_per_unit_fixed_kg_co2_eq": 14.9,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"refurbishment_avoided_e_waste_kg": 10,
"recycling_avoided_e_waste_kg": 0,
"recycling_avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/circularity/123456789",
"pdf": "https://app.rejoose.com/api/v3/evoices/circularity/123456789/pdf"
}
}
],
"filters": {
"from": "2025-01-01",
"to": "2025-12-31",
"date_type": "external_doc_date",
"organization_id": null,
"batch_id": null,
"company_ids": null,
"search": null,
"updated_filter": null,
"metric": null,
"metric_min": null,
"metric_max": null
},
"unit": "metric",
"pagination": {
"current_page": 1,
"last_page": 2,
"per_page": 10,
"total": 14,
"next_page_url": "https://app.rejoose.com/api/v3/evoices/circularity?page=2",
"prev_page_url": null
}
},
"errors": null,
"status": 200
}
List e.voice circularity clients
Requires API keyThe clients you have sent circularity documents to, one row per client.
Each client is listed once, told apart by organization_id, the customer id you send with each circularity document. subsidiaries lists the names, company IDs and countries your circularity documents gave that client, one entry per company ID and country; names joins the names.
Search. search finds clients whose organisation id, or a subsidiary's name or company ID, has a word that starts with each word of the text: search=friendly finds "Eco-Friendly Solutions Ltd" and search=DK3333 finds company ID DK33334444, but search=3333 does not.
Paging. 10 clients per page by default, 100 at most. pagination.total is the number of clients found. Rows are sorted by organization_id.
Tip. Use the organization_id of a row as the organization_id filter of List e.voice circularities to get that client's circularity documents.
api/v3/evoices/circularity/clients
Received response
Request failed with error
{
"data": {
"items": [
{
"organization_id": "EcoFriendly-4987",
"names": "Eco-Friendly Solutions Ltd",
"subsidiaries": [
{
"name": "Eco-Friendly Solutions Ltd",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"country_code": "DK"
}
]
},
{
"organization_id": "NordicOffice-2210",
"names": "Nordic Office AB, Nordic Office Supplies A/S",
"subsidiaries": [
{
"name": "Nordic Office AB",
"company_id": "SE556677889901",
"vat_number": "SE556677889901",
"country_code": "SE"
},
{
"name": "Nordic Office Supplies A/S",
"company_id": "DK22104411",
"vat_number": "DK22104411",
"country_code": "DK"
}
]
}
],
"pagination": {
"current_page": 1,
"last_page": 4,
"per_page": 10,
"total": 37,
"next_page_url": "https://app.rejoose.com/api/v3/evoices/circularity/clients?page=2",
"prev_page_url": null
}
},
"errors": null,
"status": 200
}
Reports
Generate aggregate PDF reports of your e.voice and e.voice circularity data over a period, and fetch reports that were queued.
For supplier partners only. The report endpoints are available to supplier partners, the organisations that issue e.voices and e.voice circularities. A request from any other partner type is refused with a 403. The RCIBR report needs an API key with the e.voice circularity ability, the CSR report one with the e.voice ability, and the report request endpoints accept either.
How a report is delivered:
- By default the request is synchronous: the response is the PDF file (200).
- A large period can take longer than the request time limit (about 30 seconds). Then the API queues the report and answers 202 with a
report_request. Itsfallback_reasontells you why. - Send
deferred=trueto run the report as a background job and always get 202 at once. This is the samedeferredflag as in e.voice generation, but herefalsecan still answer 202 when the time limit is reached. - After a 202, poll
links.status(also in theLocationheader; wait theRetry-Afterseconds between polls) untilstatusiscompleted, then calllinks.downloadfor a download link. The link is valid for 5 minutes. A queued report is kept for 7 days. - Sending the same request again while it is queued or processing returns the same report request; it does not queue a second report. You can have at most 10 reports queued or processing at a time.
The 200 response is always the raw PDF (Content-Type: application/pdf), whatever the Accept header; send base64=true for a JSON body. Treat an unknown status or fallback_reason value as "not finished".
Only supplier partners can use this endpoint. The API report does not contain the "Company-Level Carbon Data" section (the table per company id); the report you generate in e.hub keeps it. The 25 requests per minute and the 10 outstanding reports are shared with the CSR endpoint. An unchanged period is served from a cache, so a repeated request is fast; the X-Report-Cache response header is hit or miss.
Generate RCIBR report
Requires API keyGenerates the RCIBR (IT Carbon Impact Benefits Report) of your circularity data as a PDF.
api/v3/reports/supplier-rcibr
Received response
Request failed with error
%PDF-1.7 (binary PDF data)
{
"data": {
"report_request": {
"id": "9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47",
"type": "supplier_rcibr",
"status": "queued",
"filters": {
"from": "2025-01-01",
"to": "2025-12-31",
"organization_name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"batch_id": null,
"date_type": "external_doc_date",
"company_ids": null,
"search": null,
"updated_filter": null
},
"locale": "en-US",
"unit": "metric",
"fallback_reason": "sync_deadline",
"error": null,
"requested_at": "2026-09-23T10:15:02+00:00",
"started_at": null,
"completed_at": null,
"expires_at": "2026-09-30T10:15:02+00:00",
"links": {
"status": "https://app.rejoose.com/api/v3/reports/requests/9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47",
"download": "https://app.rejoose.com/api/v3/reports/requests/9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47/download"
}
}
},
"errors": null,
"status": 202
}
{
"data": null,
"errors": {
"unprocessable": [
"No e.voices found for the organization_id/group for the selected period."
]
},
"status": 422
}
{
"data": null,
"errors": {
"too_many_requests": [
"You already have 10 reports in progress. Wait until one is completed, then try again."
]
},
"status": 429
}
Generate CSR report
Requires API keyGenerates the CSR (IT Corporate Sustainability Report) of your e.voice data as a PDF.
api/v3/reports/supplier-csr
Received response
Request failed with error
%PDF-1.7 (binary PDF data)
{
"data": {
"report_request": {
"id": "7c1a9e52-0d3b-4f6e-8a21-5b9d4e7f0c13",
"type": "supplier_csr",
"status": "queued",
"filters": {
"from": "2025-01-01",
"to": "2025-12-31",
"organization_name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"group_slug": null,
"date_type": "external_invoice_date",
"company_ids": null,
"search": null,
"status": "finalized",
"evoice_type": null,
"updated_filter": null
},
"locale": "en-US",
"unit": "metric",
"fallback_reason": "sync_deadline",
"error": null,
"requested_at": "2026-10-29T10:15:02+00:00",
"started_at": null,
"completed_at": null,
"expires_at": "2026-11-05T10:15:02+00:00",
"links": {
"status": "https://app.rejoose.com/api/v3/reports/requests/7c1a9e52-0d3b-4f6e-8a21-5b9d4e7f0c13",
"download": "https://app.rejoose.com/api/v3/reports/requests/7c1a9e52-0d3b-4f6e-8a21-5b9d4e7f0c13/download"
}
}
},
"errors": null,
"status": 202
}
{
"data": null,
"errors": {
"unprocessable": [
"No e.voices found for the organization_id/group for the selected period."
]
},
"status": 422
}
{
"data": null,
"errors": {
"too_many_requests": [
"You already have 10 reports in progress. Wait until one is completed, then try again."
]
},
"status": 429
}
Retrieve a report request
Requires API keyReturns a queued report request and its status: queued, processing, completed or failed. A failed request has an error text; request the report again. A request older than 7 days is gone (404).
api/v3/reports/requests/{reportRequestId}
Received response
Request failed with error
{
"data": {
"id": "9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47",
"type": "supplier_rcibr",
"status": "completed",
"filters": {
"from": "2025-01-01",
"to": "2025-12-31",
"organization_name": "Eco-Friendly Solutions Ltd",
"organization_id": "EcoFriendly-4987",
"batch_id": null,
"date_type": "external_doc_date",
"company_ids": null,
"search": null,
"updated_filter": null
},
"locale": "en-US",
"unit": "metric",
"fallback_reason": "sync_deadline",
"error": null,
"requested_at": "2026-09-23T10:15:02+00:00",
"started_at": "2026-09-23T10:15:03+00:00",
"completed_at": "2026-09-23T10:15:41+00:00",
"expires_at": "2026-09-30T10:15:02+00:00",
"links": {
"status": "https://app.rejoose.com/api/v3/reports/requests/9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47",
"download": "https://app.rejoose.com/api/v3/reports/requests/9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47/download"
}
},
"errors": null,
"status": 200
}
Get a report download link
Requires API keyReturns a download link for a completed report. The link is valid for 5 minutes; call this endpoint again for a new one. The report is kept for 7 days after the request.
api/v3/reports/requests/{reportRequestId}/download
Received response
Request failed with error
{
"data": {
"url": "https://cdn.rejoose.io/api/reports/a1b2c3/9d2f6c1e-4b7a-4c8e-9f3d-2a6b8c0e1f47.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=300&X-Amz-Signature=...",
"file_name": "supplier_rcibr_2025-01-01-2025-12-31.pdf",
"expires_at": "2026-09-23T10:21:12+00:00"
},
"errors": null,
"status": 200
}
{
"data": null,
"errors": {
"conflict": [
"The report is not ready yet. Poll the status link until the status is completed."
]
},
"status": 409
}
e.product
The e.product API provides carbon footprint data for individual products, making it ideal for use in e-commerce, quotations, and other during-sales scenarios where a general carbon assessment is needed. For more detailed, transaction-specific reporting at the customer level, you should be using the e.voice API, which complements e.product by focusing on post-sales impact and needed documentation.
How Product Identification Works
In this solution, one product is defined as a country-specific dataset based on a combination of:
- Manufacturer Part Number (MPN): The unique manufacturer part number (SKU/MPN) provided by the vendor or distributor, or an internal part number.
- Brand: The product manufacturer's name. Used together with the MPN and category to ensure a unique data match.
- Category: Used alongside the external ID and brand to ensure accurate product matching. Also enables the system to provide carbon data for the category when specific LCA data is unavailable.
This ensures that the footprint reflects region-specific factors such as electricity mix and product lifecycle variations.
API Response
When querying the e.product endpoint, the API returns the following carbon footprint data:
- Total carbon footprint (LCA) – The full lifecycle emissions of a product, e.g., 33.3 kg CO₂e.
- Refurbishment impact (LCA) – The emissions from refurbishing the product instead of manufacturing a new one, e.g., 3.5 kg CO₂e
- Avoided emissions by choosing refurbished – The emissions savings when selecting a refurbished product over a new one, e.g., 28.0 kg CO₂e.
- Data match – will be true if the response includes LCA data - matching either a product or category
- Product match – will be true if the manufacturer part number and brand match a product
- Refurbishment impact basis – for a refurbished product,
refurbishment_impact_basistells you whether your certified facility RFI, the Rejoose standard RFI, or your refurbishment percentage was used, andrfi_external_id,rfi_version, andvariantname the figure. The answer uses the RFI that applies today and is not stored. See Refurbishment impact.
Reading the response
- New product – send neither
refurbishednorrecycled. This is the default path, and the only one wheretec_kwhis returned; it isnullfor refurbished and recycled products. - Refurbished product – under cut-off allocation the production burden stays with the product's first life, so
manufacturing_kg_co2_eqandtransportation_kg_co2_eqare0andtotal_kg_co2_eq = refurbishment_impact_kg_co2_eq + use_kg_co2_eq + end_of_life_kg_co2_eq. - Recycled product – requires e.product+; without it the request is refused with a 422 on
recycledand nothing is billed.recycling_avoided_e_waste_kgis the mass actually recovered as secondary material, so it equalsmaterial_flow.total_recovered_kgand is smaller than the device weight. This is the opposite convention to refurbishment avoided e-waste (refurbishment_avoided_e_waste_kg, reported by the e.voice circularity API), which is the full device weight retained in use. refurbishedandrecycledcannot be combined on one product: on e.product+ the request is accepted, but the recycled flag suppresses the carbon intensity, lifetime and life cycle stage values, so query the product as either refurbished or recycled, never both.
Please look through the API docs for more details or contact support@rejoose.com for assistance.
Usage limit
Your subscription covers a number of unique products per subscription period. A product counts once per manufacturer part number, brand and country (refurbished and recycled products once regardless of country), and only when data is returned. Retrieving a product you already retrieved in the period is free and stays possible after the limit is reached; only products new to the period are then refused with a 403 that names them.
e.product+
e.product+ is an extended version of e.product that returns full life cycle assessment (LCA) data for a product, rather than the total carbon footprint alone. A standard e.product response provides the total carbon footprint, refurbishment impact, and avoided emissions; e.product+ adds the breakdown behind the total.
Additional fields:
manufacturing_kg_co2_eqtransportation_kg_co2_equse_kg_co2_eqend_of_life_kg_co2_eqtec_kwh
Recycled lookups (recycled=1) are available on e.product+ only, and the response includes:
recycling_avoided_e_waste_kgrecycling_avoided_emissions_kg_co2_eqmaterial_flow
e.product+ requires a separate subscription; without it the additional fields are left out of the response entirely (they are not returned as null) and recycled lookups are refused with a 422. To enable access, contact support@rejoose.com.
Look up a product
Requires API keyThe GET endpoint returns the carbon footprint data of a single product.
api/v3/products
Received response
Request failed with error
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": true,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 17.582,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": 8.618,
"refurbishment_offset_kg_co2_eq": 146.74,
"refurbishment_impact_basis": "standard_category",
"rfi_external_id": "standard-2026",
"rfi_version": 1,
"variant": "full",
"rfi_per_unit_fixed_kg_co2_eq": 8.5,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"rfi_weight_basis": "device"
},
"errors": null,
"status": 200
}
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 175.984,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null
},
"errors": null,
"status": 200
}
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": true,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 17.582,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": 8.618,
"refurbishment_offset_kg_co2_eq": 146.74,
"refurbishment_impact_basis": "standard_category",
"rfi_external_id": "standard-2026",
"rfi_version": 1,
"variant": "full",
"rfi_per_unit_fixed_kg_co2_eq": 8.5,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"rfi_weight_basis": "device",
"manufacturing_kg_co2_eq": 0,
"transportation_kg_co2_eq": 0,
"use_kg_co2_eq": 7.638,
"end_of_life_kg_co2_eq": 1.326,
"tec_kwh": null,
"recycling_avoided_e_waste_kg": null,
"recycling_avoided_emissions_kg_co2_eq": null,
"material_flow": null,
"epeat_tier": "gold",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/EPEAT-21MMSEJC00",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=TCO-21MMSEJC00"
},
"errors": null,
"status": 200
}
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": true,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": null,
"carbon_intensity_gram": null,
"lifetime_month": null,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"use_kg_co2_eq": null,
"end_of_life_kg_co2_eq": null,
"tec_kwh": null,
"recycling_avoided_e_waste_kg": 0.547,
"recycling_avoided_emissions_kg_co2_eq": 1.612,
"material_flow": {
"total_input_kg": 1.38,
"total_recovered_kg": 0.547,
"recovered_percentage": 39.6,
"primary_components": "Plastic (27%), Battery (18%), Flat-Panel Display Module (16%), Printed Circuit Board (14%), Aluminum (12%), Ferrous Metal (7%), Other Metals (4%), Copper (2%)",
"secondary_components": "Aluminum sheet (28%), Steel sheet (24%), Copper wire (21%), Lithium cobalt oxide (15%), HDPE (6%), Nickel (3%), PET (2%), Precious metals (Au/Ag/Pd) (0.049%)"
},
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null
},
"errors": null,
"status": 200
}
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 175.984,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null,
"manufacturing_kg_co2_eq": 156.28,
"transportation_kg_co2_eq": 10.74,
"use_kg_co2_eq": 7.638,
"end_of_life_kg_co2_eq": 1.326,
"tec_kwh": 14.58,
"recycling_avoided_e_waste_kg": null,
"recycling_avoided_emissions_kg_co2_eq": null,
"material_flow": null,
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=TCO-21MMSEJC00"
},
"errors": null,
"status": 200
}
{
"data": null,
"errors": {
"forbidden": [
"E/product is not enabled for your organization. Contact us on \"sales@rejoose.com\" or \"+45 71 74 70 30\" to enable it."
]
},
"status": 403
}
{
"data": null,
"errors": {
"forbidden": [
"Your max limit on E/product is reached. Contact us on \"sales@rejoose.com\" or \"+45 71 74 70 30\" to change your limit. Products already retrieved in this subscription period remain available. Not yet retrieved: 21MMSEJC00 (Lenovo, refurbished)."
]
},
"status": 403
}
{
"data": {
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": false,
"product_match": false,
"data_method": null,
"total_kg_co2_eq": null,
"carbon_intensity_gram": null,
"lifetime_month": null,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null
},
"errors": {
"not_found": [
"Product (21MMSEJC00 + Lenovo) and category (Notebook) not found"
]
},
"status": 404
}
{
"data": null,
"errors": {
"recycled": [
"Recycled lookups require an e.product+ subscription. To enable access, contact support@rejoose.com."
]
},
"status": 422
}
Look up products in bulk
Requires API keyReturns the carbon footprint data of 1 to 100 products in one request. Each entry is identified like a single lookup (manufacturer part number, brand, category and country) and carries its own refurbished or recycled flag, facility and variant, so one batch can mix new, refurbished and recycled products from different facilities. The response holds one entry per product, in request order; an entry without product or category data comes back with data_match false and null carbon data while the batch itself still answers 200. For larger catalogues, send several batches.
What a product is, how to read an entry, the usage limit and e.product+ are described at the top of this section.
api/v3/products
Received response
Request failed with error
{
"data": [
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": true,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 17.582,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": 8.618,
"refurbishment_offset_kg_co2_eq": 146.74,
"refurbishment_impact_basis": "standard_category",
"rfi_external_id": "standard-2026",
"rfi_version": 1,
"variant": "full",
"rfi_per_unit_fixed_kg_co2_eq": 8.5,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"rfi_weight_basis": "device",
"manufacturing_kg_co2_eq": 0,
"transportation_kg_co2_eq": 0,
"use_kg_co2_eq": 7.638,
"end_of_life_kg_co2_eq": 1.326,
"tec_kwh": null,
"recycling_avoided_e_waste_kg": null,
"recycling_avoided_emissions_kg_co2_eq": null,
"material_flow": null,
"epeat_tier": "gold",
"epeat_climate_plus": true,
"epeat_status": "active",
"epeat_certificate_url": "https://epeat.net/product-details/EPEAT-21MMSEJC00",
"tco_certified": true,
"tco_certificate_url": "https://tcocertified.com/product-finder/?cert=TCO-21MMSEJC00"
},
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": true,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": null,
"carbon_intensity_gram": null,
"lifetime_month": null,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null,
"manufacturing_kg_co2_eq": null,
"transportation_kg_co2_eq": null,
"use_kg_co2_eq": null,
"end_of_life_kg_co2_eq": null,
"tec_kwh": null,
"recycling_avoided_e_waste_kg": 0.547,
"recycling_avoided_emissions_kg_co2_eq": 1.612,
"material_flow": {
"total_input_kg": 1.38,
"total_recovered_kg": 0.547,
"recovered_percentage": 39.6,
"primary_components": "Plastic (27%), Battery (18%), Flat-Panel Display Module (16%), Printed Circuit Board (14%), Aluminum (12%), Ferrous Metal (7%), Other Metals (4%), Copper (2%)",
"secondary_components": "Aluminum sheet (28%), Steel sheet (24%), Copper wire (21%), Lithium cobalt oxide (15%), HDPE (6%), Nickel (3%), PET (2%), Precious metals (Au/Ag/Pd) (0.049%)"
},
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null
},
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 175.984,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null,
"manufacturing_kg_co2_eq": 156.28,
"transportation_kg_co2_eq": 10.74,
"use_kg_co2_eq": 7.638,
"end_of_life_kg_co2_eq": 1.326,
"tec_kwh": 14.58,
"recycling_avoided_e_waste_kg": null,
"recycling_avoided_emissions_kg_co2_eq": null,
"material_flow": null,
"epeat_tier": null,
"epeat_climate_plus": null,
"epeat_status": null,
"epeat_certificate_url": null,
"tco_certified": null,
"tco_certificate_url": null
}
],
"errors": null,
"status": 200
}
{
"data": [
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": true,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 17.582,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": 8.618,
"refurbishment_offset_kg_co2_eq": 146.74,
"refurbishment_impact_basis": "standard_category",
"rfi_external_id": "standard-2026",
"rfi_version": 1,
"variant": "full",
"rfi_per_unit_fixed_kg_co2_eq": 8.5,
"rfi_transport_co2_eq_per_tonne": 78.442667,
"rfi_weight_basis": "device"
},
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": true,
"product_match": true,
"data_method": "MS",
"total_kg_co2_eq": 175.984,
"carbon_intensity_gram": 130.96,
"lifetime_month": 48,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null
}
],
"errors": null,
"status": 200
}
{
"data": [
{
"manufacturer_part_number": "21MMSEJC00",
"brand": "Lenovo",
"category": "Notebook",
"country_code": "GB",
"refurbished": false,
"recycled": false,
"data_match": false,
"product_match": false,
"data_method": null,
"total_kg_co2_eq": null,
"carbon_intensity_gram": null,
"lifetime_month": null,
"refurbishment_impact_kg_co2_eq": null,
"refurbishment_offset_kg_co2_eq": null,
"refurbishment_impact_basis": null,
"rfi_external_id": null,
"rfi_version": null,
"variant": null,
"rfi_per_unit_fixed_kg_co2_eq": null,
"rfi_transport_co2_eq_per_tonne": null,
"rfi_weight_basis": null
}
],
"errors": null,
"status": 200
}
{
"data": null,
"errors": {
"forbidden": [
"E/product is not enabled for your organization. Contact us on \"sales@rejoose.com\" or \"+45 71 74 70 30\" to enable it."
]
},
"status": 403
}
{
"data": null,
"errors": {
"forbidden": [
"Your max limit on E/product is reached. Contact us on \"sales@rejoose.com\" or \"+45 71 74 70 30\" to change your limit. Products already retrieved in this subscription period remain available. Not yet retrieved: 21MMSEJC00 (Lenovo, refurbished), 21MMSEJC00 (Lenovo, recycled), 21MMSEJC00 (Lenovo, GB)."
]
},
"status": 403
}
{
"data": null,
"errors": {
"products.1.recycled": [
"Recycled lookups require an e.product+ subscription. To enable access, contact support@rejoose.com."
]
},
"status": 422
}
List changed products
Requires API keyRetrieve changed products as a CSV file.
This endpoint provides a CSV file listing the changes for a specified date or week.
The file contains columns for manufacturer_part_number, brand, and category.
Use this file to check for relevant products and brands, then use the e.product API to obtain detailed information.
Daily File: If a date is specified, a daily changes file for that day is returned, specified date cannot be in the future.
- Example: For
date=2024-11-06, the file will list all products that changed on November 6, 2024.
Weekly Summary File: Aggregates product changes from Monday to Sunday for a specified week.
Without a date, a summary file for the specified or most recent week is retrieved.
The weekly file aggregates product changes from Monday to Sunday for the specified week.
Weekly File Details:
- Aggregates data from all daily files generated for each day of the specified week.
- Most recent week means the last full week. If you request a weekly file in any given week without a date, you will receive data from previous week (Monday to Sunday).
- Example: A weekly file for week 45 of 2024 contains all products that changed from Monday, 2024-11-04, to Sunday, 2024-11-10.
- Removes duplicate entries to ensure a clean dataset.
- Combines individual product changes into a single file.
Weekly File Composition:
The weekly file includes:
- All changes recorded in the daily files from Monday to Sunday of the week.
- A deduplicated list of products with details such as
manufacturer_part_number,brand, andcategory.
Recommendations:
- Use the weekly file for a comprehensive overview of all product changes for the week. We suggest that you get the weekly file every Monday after 12:00 UTC.
- Refer to the daily file for specific changes on a particular day
Response Details:
- Returns a 302 Redirect to the CDN URL if the file is accessible there.
- An invalid
dateorweek_numberis answered with a 422 whose body is a singleerrorstring, not the one described under Validation failed (422).
api/v3/products/changes
Received response
Request failed with error
manufacturer_part_number,brand,category
UT04CBE,Lenovo,Notebook
RE242EP,HP,Notebook
PSMA2E-00U01DGC,Toshiba,Notebook
RH324ET#ABY-D30,HP,Notebook
A3HF-5A027P,ASUS,Notebook
{
"data": null,
"errors": {
"not_found": [
"File not found."
]
},
"status": 404
}
Categories
The Categories endpoint lists every category Rejoose recognises, together with the other names each one is known by. Use it to map your own product groups to Rejoose categories before you send devices to e.voice, e.voice circularity, or e.product, and to keep that mapping current as the catalogue grows.
Also available in e.hub
The same list is available in e.hub under Developer → Available categories, for users with the admin or developer role. There you can search it by name or tag without using the API.
List categories
Requires API keyOne page of the categories, ordered by id, optionally narrowed with search.
Use search to find a category by any of its names: search=laptop returns Notebook, because "Laptops" is one of its tags. pagination.total counts the matches.
The list comes from a weekly snapshot of the category catalogue, taken every Monday. snapshot.date names the snapshot the page was read from. A new snapshot can appear between two of your requests, so compare it when you walk several pages.
api/v3/categories
Received response
Request failed with error
{
"data": {
"items": [
{
"id": 41,
"name": "Monitor",
"main_category_id": null,
"tags": [
"Monitors",
"Computer Monitors",
"display"
],
"default_lifetime_months": 72,
"default_weight_kg": 5.6
},
{
"id": 42,
"name": "Notebook",
"main_category_id": null,
"tags": [
"Notebooks",
"Laptops",
"laptop"
],
"default_lifetime_months": 48,
"default_weight_kg": 1.8
}
],
"snapshot": {
"date": "2026-10-26"
},
"pagination": {
"current_page": 1,
"last_page": 29,
"per_page": 10,
"total": 284,
"next_page_url": "https://app.rejoose.com/api/v3/categories?page=2",
"prev_page_url": null
}
},
"errors": null,
"status": 200
}
Groups
Enterprise Grouping in e.hub
The e.hub Enterprise Functionality is an advanced feature exclusively available to Enterprise Subscription customers. It is designed for companies operating with multiple ERP systems that do not share common company or organisation identifiers. This is particularly useful for businesses using different ERP systems across regions, such as SAP in the EU and Business Central in the US, where customer naming conventions and identifiers are not aligned.
Seamless Data Consolidation Across Multiple ERP Systems
With this feature, you can link and unify organisation data from multiple disconnected ERP systems into a single Group Structure, ensuring a consistent, company-wide carbon reporting framework.
Three-Tiered Reporting Structure
The grouping model enables full organisational alignment across various business units. How the three levels relate to the ids you send is explained under Reporting IDs:
- Group: The top-level entity, representing the entire enterprise. (unique to Enterprise Grouping)
- Organisation: The customer as sent in
client.organization_id, typically one per ERP or platform, each containing multiple companies. (standard e.voice function) - Companies: Individual companies, branch offices, or subsidiaries as sent in
client.company_id. (standard e.voice function)
Each Group can contain multiple Organisations, and each Organisation can include hundreds of subsidiaries, ensuring scalability for even the largest enterprises.
Data Extraction & Integration
A dedicated data extraction endpoint allows you to:
- Retrieve grouped and structured data for data warehouse integration.
- Extract e.voice records and filter reports by Group, Organisation, or Company.
- Seamlessly integrate consolidated data into your internal analytics or reporting systems.
List a group's e.voices
Requires API keyRetrieve a paginated list of e.voices for a specific group, filtered by date and pagination options.
api/v3/group/{slug}
Received response
Request failed with error
{
"data": {
"items": [
{
"external_invoice_id": "a6e0f0bb-0285-4a2d-b6d8-93c63543d5a9",
"external_invoice_date": "2024-07-24T07:39:56.000000Z",
"country_code": "DK",
"carbon_intensity_gram": 123,
"total_kg_co2_eq": 1301.51,
"manufacturing_kg_co2_eq": 892.34,
"transportation_kg_co2_eq": 156.78,
"eol_kg_co2_eq": 252.39,
"status": "finalized",
"created_at": "2024-07-24T07:39:56.000000Z",
"updated_at": "2024-07-24T07:39:59.000000Z",
"group": {
"name": "Eco Friendly Company",
"slug": "eco-friendly-company"
},
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "ecofriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"quantity": 10,
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"lifetime_months": 72,
"scope_2_kg_co2_eq": 278.41,
"scope_3_kg_co2_eq": 249.27,
"total_kg_co2_eq": 527.68,
"manufacturing_kg_co2_eq": 198.45,
"transportation_kg_co2_eq": 23.14,
"eol_kg_co2_eq": 27.68,
"refurbished": true,
"avoided_emissions_kg_co2_eq": 256.68
},
{
"external_id": "SM-S918BZKDEEB",
"original_manufacturer_part_number": null,
"quantity": 10,
"brand": "Samsung",
"model_name": "Galaxy S23 Ultra",
"category": "Smartphone",
"lifetime_months": 30,
"scope_2_kg_co2_eq": 31.18,
"scope_3_kg_co2_eq": 742.65,
"total_kg_co2_eq": 773.83,
"manufacturing_kg_co2_eq": 693.89,
"transportation_kg_co2_eq": 133.64,
"eol_kg_co2_eq": 224.71,
"refurbished": false,
"avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/a6e0f0bb-0285-4a2d-b6d8-93c63543d5a9"
}
}
],
"current_page": 2,
"last_page": 4522,
"total": 4522,
"per_page": 1,
"next_page": "https://app.rejoose.com/api/v3/group/eco-friendly-company?page=3",
"previous_page": "https://app.rejoose.com/api/v3/group/eco-friendly-company?page=1"
},
"errors": null
}
List e.voices by group
Requires API keyRetrieve a paginated list of e.voices for all groups, filtered by date and pagination options.
api/v3/groups
Received response
Request failed with error
{
"data": {
"items": [
{
"external_invoice_id": "a6e0f0bb-0285-4a2d-b6d8-93c63543d5a9",
"external_invoice_date": "2024-07-24T07:39:56.000000Z",
"country_code": "DK",
"carbon_intensity_gram": 123,
"total_kg_co2_eq": 1301.51,
"manufacturing_kg_co2_eq": 892.34,
"transportation_kg_co2_eq": 156.78,
"eol_kg_co2_eq": 252.39,
"status": "finalized",
"created_at": "2024-07-24T07:39:56.000000Z",
"updated_at": "2024-07-24T07:39:59.000000Z",
"group": {
"name": "Eco Friendly Company",
"slug": "eco-friendly-company"
},
"client": {
"name": "Eco-Friendly Solutions Ltd",
"organization_id": "ecofriendly-4987",
"company_id": "ECOF1234567",
"vat_number": "ECOF1234567",
"address": "100 Enviro Way",
"address2": "Sustainability Lane 3",
"zip_code": "ECO321",
"city": "GreenVille",
"country": "Denmark"
},
"devices": [
{
"external_id": "RE8989121",
"original_manufacturer_part_number": "62B6MAT3EU",
"quantity": 10,
"brand": "Lenovo",
"model_name": "ThinkPad T480",
"category": "Notebook",
"lifetime_months": 72,
"scope_2_kg_co2_eq": 278.41,
"scope_3_kg_co2_eq": 249.27,
"total_kg_co2_eq": 527.68,
"manufacturing_kg_co2_eq": 198.45,
"transportation_kg_co2_eq": 23.14,
"eol_kg_co2_eq": 27.68,
"refurbished": true,
"avoided_emissions_kg_co2_eq": 256.68
},
{
"external_id": "SM-S918BZKDEEB",
"original_manufacturer_part_number": null,
"quantity": 10,
"brand": "Samsung",
"model_name": "Galaxy S23 Ultra",
"category": "Smartphone",
"lifetime_months": 30,
"scope_2_kg_co2_eq": 31.18,
"scope_3_kg_co2_eq": 742.65,
"total_kg_co2_eq": 773.83,
"manufacturing_kg_co2_eq": 693.89,
"transportation_kg_co2_eq": 133.64,
"eol_kg_co2_eq": 224.71,
"refurbished": false,
"avoided_emissions_kg_co2_eq": 0
}
],
"links": {
"self": "https://app.rejoose.com/api/v3/evoices/a6e0f0bb-0285-4a2d-b6d8-93c63543d5a9"
}
}
],
"current_page": 2,
"last_page": 4522,
"total": 4522,
"per_page": 1,
"next_page": "https://app.rejoose.com/api/v3/groups?page=3",
"previous_page": "https://app.rejoose.com/api/v3/groups?page=1"
},
"errors": null
}