Get started
API Endpoint
https://api.co2certs.com/
Welcome to the CO2Certs Offsetting API! This robust API is designed to help you seamlessly integrate carbon offsetting capabilities into your applications. With the CO2Certs Offsetting API, you can create records for offsetting emissions, and perform queries to estimate emissions based on value-based transactions. Additionally, you can confirm the emissions estimated by these queries.
To access the CO2Certs API, you will need X-AUTH-TOKEN, API ID and API SECRET . You can request these essential credentials by sending an email to contato@co2certs.com, or you can find them in SUA EMPRESA section on our portal at portal@co2certs.com. These credentials are crucial for authenticating and securely interacting with our services.
Authentication
curl -X GET \
https://example.com/api/endpoint \
-H 'x-auth-token: YOUR_X_AUTH_TOKEN' \
-H 'Authorization: Basic BASE64_ENCODED_CREDENTIALS'
HEADERS
| To access the CO2Certs Offsetting API methods, you'll need to use both the x-auth-token and Authorization headers. Remember to include YOUR_X_AUTH_TOKEN in the x-auth-token header of your request, and your BASE64_ENCODED_CREDENTIALS in the Authorization header. To obtain your BASE64_ENCODED_CREDENTIALS, follow these steps: | |
| 1. Format Your Credentials: | Start by combining your API ID and API Secret into a single string, separated by a colon. This should look like APIID:APISECRET. |
| 2. Encode in BAse64: | Convert the combined string into Base64 format. This encoding is used to safely transmit the credentials over HTTP. For example in JavaScript btoa('APIID:APISECRET'). |
| 3. Make the Auth Request: | Include the encoded credentials in the Authorization header with the prefix `Basic ` and make a request to the authentication endpoint. |
emission by distance
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/distance' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"distance": 235
}'
To create distance emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/create
Result example :
{
"distance": 235000,
"id": "50287cb1-d69d-423d-976a-257588883caf",
"emission": 0.0723,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| distance | integer | distance in kilometers |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
emission by route
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/route' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"originZipcode": "05596000",
"destinationZipcode": "132440001"
}'
To create route emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/route
Result example :
{
"distance": 74217,
"id": "a6bc0ad1-9df0-44b2-bad9-c9ed397019be",
"emission": 0.0228,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| originZipcode | string | route origin zip code (Ex. 00000-000) |
| destinationZipcode | string | route destination zip code (Ex. 00000-000) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000001) |
emission by roundtrip
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/roundtrip' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"originZipcode": "05596000",
"destinationZipcode": "132440001"
}'
To create roundtrip emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/roundtrip
Result example :
{
"distance": 148434,
"id": "098a59b1-61b7-485a-b100-376b1a7a2ac2",
"emission": 0.0456,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| originZipcode | string | route origin zip code (Ex. 00000-000) |
| destinationZipcode | string | route destination zip code (Ex. 00000-000) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000001) |
emission by value
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/value' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"value": 248.35
}'
To create value emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/value
Result example :
{
"value": 0.99,
"id": "a34325a0-0538-485e-bfb1-27d2db755696",
"emission": 0.001,
"htmlReceipt": "< html > ... < / html >",
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| value | decimal | transaction value (Ex. 100.23) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
emission by precalc
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/precalc' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"emission": 0.002543
}'
To create precalc emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/precalc
Result example :
{
"id": "43fd438-c239-49a0-a0ea-613213882c49",
"emission": 0.002543,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| emission | decimal | emission value in ton CO2e (Ex. 0.0023) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
emission by passenger
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emission/passenger' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"calcType": 0,
"transportType": 0,
"passengers": 1,
"distance": 148434
}'
To create passenger emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/passenger
Result example :
{
"id": "43fd438-c239-49a0-a0ea-613213882c49",
"distance": 148434,
"emission": 0.002543,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| calcType | integer | 0 - Distance, 1 - Route, 2 - RoundTrip |
| transportType | integer | 0 - Bus, 1 - Subway, 2 - PassengerCar, 3 - Motorcycle, 4 - HeavyDuty |
| passengers | integer | number of passengers |
| distance | decimal | (required if typeCalc is 0 - Distance) distance in kilometers |
| originZipcode | string | (required if typeCalc is 1 - Route or 2 - RoundTrip) route origin zip code (Ex. 00000-000) |
| destinationZipcode | string | (required if typeCalc is 1 - Route or 2 - RoundTrip) route destination zip code (Ex. 00000-000) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
estimate by value
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/estimate/value' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"value": 248.35
}'
To estimate value emission, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/estimate/value
Result example :
{
"id": "ace905dc-d129-46bd-acf6-abedac13352a",
"emission": 0.0007173451889636361363636364,
"value": 0.99,
"emissionPerSale": "0,72 Kg CO2e",
"emissionPerValue": "2,61 Kg CO2e",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| value | decimal | transaction value to be estimated (Ex. 248.35) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
emission by estimate id
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/emission/estimate/ace9' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To create emission by estimate id, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/estimate/{id}
Result example :
{
"value": 0.99,
"id": "f1a9444d-3304-40ec-94bd-f09dc58e7e29",
"emission": 0.001,
"htmlReceipt": "< html > ... < / html >",
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| id | string | the estimate id obtained on estimateby value request (Ex. ace905dc-d129-46bd-acf6-abedac13352a) |
emission list
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/emissions' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"status": 0
}'
To list emissions, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/emissions
Result example :
{
"emissions": [
{
"id": "62522447-084c-4881-a0d7-1f3416ab3668",
"type": "RoundTrip",
"date": "2024-04-01T23:43:25.935+00:00",
"externalReference": null,
"customerExternalReference": null,
"emission": 0.0294,
"url": "https://transparenc....issao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"status": "Issued"
},
{
"id": "5b8d83a0-c931-4024-9d46-b5b97e122152",
"type": "RoundTrip",
"date": "2024-04-01T23:37:33.813+00:00",
"externalReference": null,
"customerExternalReference": null,
"emission": 0.0352,
"url": "https://transparenc....issao/OTIxYmE2Yc1ODg4ODNjYWY=",
"qrCode": "iVBORw0KGgoAAAAACgCAYAAACLz2ctAAAB ... lFTkSuQmCC",
"status": "Issued"
}
],
"paginationToken": null,
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| type | integer | (optional) 0 - RoundTrip, 1 - Route, 2 - Distance, 3 - Value, 4 - Precalc, 5 - Passenger |
| status | integer | (optional) 0 - Registered, 1 - Requested, 2 - Issued |
| fromDate | date | (optional) emission period from date (Ex. 2024-05-01) |
| toDate | date | (optional) emission period to date (Ex. 2024-05-01) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the emission to specific external records or systems (Ex. CO000002) |
get emission by id
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/emission/id/ace9' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To get emission by id, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/id/{id}
Result example :
{
"emission": {
"id": "aaf75183-c86a-4921-9def-7e4b417eab3c",
"type": "Distance",
"date": "2024-05-09T15:12:18.089+00:00",
"externalReference": null,
"customerExternalReference": "03.848.503/0001-00",
"emission": 0.16629,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1YWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYtAAAB ... lFTkSuQmCC",
"status": "Registered"
},
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| id | string | the emission id (Ex. ace905dc-d129-46bd-acf6-abedac13352a) |
get emission by external reference
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/emission/reference/EXRF' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To get emission by external reference, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/emission/reference/{externalReference}
Result example :
{
"emission": {
"id": "aaf75183-c86a-4921-9def-7e4b417eab3c",
"type": "Distance",
"date": "2024-05-09T15:12:18.089+00:00",
"externalReference": "EXRF0001",
"customerExternalReference": "03.848.503/0001-00",
"emission": 0.16629,
"url": "https://transparencia.co2certs.com/emissao/OTIxYmE2Yc1YWY=",
"qrCode": "iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYtAAAB ... lFTkSuQmCC",
"status": "Registered"
},
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| externalReference | string | the emission external reference (Ex. EXRF0001) |
request offsetting
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/offsetting' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"emissionIdList": ["5f1575e6-44e1-44ff-9e94-984524ad6aff"],
"externalReference": "ADD0002",
"thirdPartyIssuing": false
}'
To request offsetting, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/offsetting
Result example :
{
"externalReference": "ADD0002",
"Id": "7f9df321-6ac8-475c-b93c-e772bf0330f7",
"transactions": [
{
"id": "78d88d9b-6f3b-4966-b919-1fb48adf294a",
"date": "2024-05-18T06:12:32.022+00:00",
"status": "Requested",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": "ADD0002",
"requestId": "7f9df321-6ac8-475c-b93c-e772bf0330f7",
"amount": 0.16629,
"formattedAmount": "166,29 Kg CO2e",
"reportUrl": "https://co2certs...",
"certificateUrl": null,
"tokenUrl": null,
"qrCode": null,
"emissions": [
"c6ea1443-7ce5-4d3e-9bc7-f524483c8859"
]
}
],
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| emissionIdList | string array | (required) list of emission ids to be offsetted |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the transaction to specific external records or systems (Ex. CO000002) |
| thirdPartyIssuing | boolean | false - certificate will be issued to your company, true - certificates will be issued to your customers |
offsetting list
# Here is a curl example
curl \
-X POST 'https://api.co2certs.com/api/v1/integration/offsettings' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4' \
--data '{
"status": 2
}'
To list offsettings, you need to make a POST call to the
following url :
https://api.co2certs.com/api/v1/integration/offsettings
Result example :
{
"offsettings": [
{
"id": "c56e7fee-652d-4834-a928-a6f6e0cb2cc3",
"date": "2024-04-06T04:13:03.554+00:00",
"status": "Finished",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": null,
"requestId": null,
"amount": 0.0646,
"formattedAmount": "64,60 Kg CO2e",
"reportUrl": "https://co2certs....",
"certificateUrl": "https://co2certs...",
"tokenUrl": "https://polygon....",
"qrCode": "iVBORw0KGgo....SuQmCC",
"emissions": [
"5b8d83a0-c931-4024-9d46-b5b97e122152",
"62522447-084c-4881-a0d7-1f3416ab3668"
]
},
{
"id": "de274aee-1b67-4173-bfba-97c33450d3bc",
"date": "2024-04-06T03:54:24.764+00:00",
"status": "Finished",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": null,
"requestId": null,
"amount": 0.1012,
"formattedAmount": "101,20 Kg CO2e",
"reportUrl": "https://co2certs....",
"certificateUrl": "https://co2certs...",
"tokenUrl": "https://polygon....",
"qrCode": "iVBORw0KGgo....SuQmCC",
"emissions": [
"106b2305-05f7-4248-b928-2eec03b00c46",
"122e0422-a80a-4262-aea5-402981fd938d"
]
}
],
"paginationToken": null,
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
BODY
| Field | Type | Description |
|---|---|---|
| status | integer | (optional) 0 - Requested, 1 - Processing, 2 - Finished |
| fromDate | date | (optional) offsetting period from date (Ex. 2024-05-01) |
| toDate | date | (optional) offsetting period to date (Ex. 2024-05-01) |
| requestId | string | (optional) the offsetting request id obtained on offsetting create request (Ex. 184eb37a-371d-4ea0-a862-31ae9bc3ae06) |
| customer | string | (optional) customer document number (Ex. 00.000.000/0001-00) |
| externalReference | string | (optional) a unique identifier provided by the user that can be used to link the emission to specific external records or systems (Ex. CO000002) |
get offsetting by id
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/offsetting/id/ace9' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To get offsetting by id, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/offsetting/id/{id}
Result example :
{
"offsetting": {
"id": "d1aa9451-ed01-4025-b518-e4ff3dbf5215",
"date": "2024-05-18T03:19:37.694+00:00",
"status": "Requested",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": "ADD0002",
"requestId": "184eb37a-371d-4ea0-a862-31ae9bc3ae06",
"amount": 0.16629,
"formattedAmount": "166,29 Kg CO2e",
"reportUrl": "https://co2certs-49a8b57034a7d6a7f6d259",
"certificateUrl": null,
"tokenUrl": null,
"qrCode": null,
"emissions": [
"5f1575e6-44e1-44ff-9e94-984524ad6aff"
]
},
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| id | string | the offsetting id (Ex. ace905dc-d129-46bd-acf6-abedac13352a) |
get offsetting by external reference
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/offsetting/reference/EXRF' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To get emission by external reference, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/offsetting/reference/{externalReference}
Result example :
{
"offsetting": {
"id": "d1aa9451-ed01-4025-b518-e4ff3dbf5215",
"date": "2024-05-18T03:19:37.694+00:00",
"status": "Requested",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": "ADD0002",
"requestId": "184eb37a-371d-4ea0-a862-31ae9bc3ae06",
"amount": 0.16629,
"formattedAmount": "166,29 Kg CO2e",
"reportUrl": "https://co2certs-49a8b57034a7d6a7f6d259",
"certificateUrl": null,
"tokenUrl": null,
"qrCode": null,
"emissions": [
"5f1575e6-44e1-44ff-9e94-984524ad6aff"
]
},
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| externalReference | string | the offsetting external reference (Ex. ADD0002) |
get offsetting by request id
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/offsetting/request/184eb' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To get offsetting by request id, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/offsetting/request/{requestId}
Result example :
{
"offsetting": {
"id": "d1aa9451-ed01-4025-b518-e4ff3dbf5215",
"date": "2024-05-18T03:19:37.694+00:00",
"status": "Requested",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": "ADD0002",
"requestId": "184eb37a-371d-4ea0-a862-31ae9bc3ae06",
"amount": 0.16629,
"formattedAmount": "166,29 Kg CO2e",
"reportUrl": "https://co2certs-49a8b57034a7d6a7f6d259",
"certificateUrl": null,
"tokenUrl": null,
"qrCode": null,
"emissions": [
"5f1575e6-44e1-44ff-9e94-984524ad6aff"
]
},
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| requestId | string | the offsetting request id obtained on offsetting create request (Ex. 184eb37a-371d-4ea0-a862-31ae9bc3ae06) |
Webhook
Webhook URL
https://api.yourdomain.com/webhookmethod/
To receive updates on your offsetting status, please provide your webhook URL. You can do this by navigating to the "CONFIGURAÇÕES >> EMPRESA" section of the CO2Certs portal. Ensure that the provided webhook URL supports POST requests. Visit the portal here:portal@co2certs.com.
Webhook Body example:
{
"id": "d1aa9451-ed01-4025-b518-e4ff3dbf5215",
"date": "2024-05-18T03:19:37.694+00:00",
"status": "Finished",
"thirdPartyIssuing": false,
"customerExternalReference": "",
"externalReference": "ADD0002",
"requestId": "184eb37a-371d-4ea0-a862-31ae9bc3ae06",
"amount": 0.16629,
"formattedAmount": "166,29 Kg CO2e",
"reportUrl": "https://co2certs-api-...07f1304ab5b8434d0",
"certificateUrl": null,
"tokenUrl": null,
"qrCode": null,
"emissions": [
"5f1575e6-44e1-44ff-9e94-984524ad6aff"
]
}
webhook test
# Here is a curl example
curl \
-X GET 'https://api.co2certs.com/api/v1/integration/webhook/test/ace9' \
--header 'Content-Type: application/json' \
--header 'x-auth-token: OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm' \
--header 'Authorization: Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4'
To receive webhook test, you need to make a GET call to the
following url :
https://api.co2certs.com/api/v1/integration/webhook/test/{id}
Result example :
{
"success": true,
"errorMessage": null,
"errorCode": 0
}
HEADERS
| Header | Type | Description |
|---|---|---|
| x-auth-token | Auth Token |
Your X_AUTH_TOKEN obtained from the portal.co2certs.com or by email. For example: `OTIxYmE2YTYtM2NhNi00YWUzLWIyZmQtY2E3ZTVkYTM3YTNm`. |
| Authorization | Basic Auth |
Your BASE64_ENCODED_CREDENTIALS obtained from the authentication step. For example: `Basic a2lkLmM3OTg0YzRiLWFiZTAtMTgwNTFjYzYyOWM4`. |
QUERY PARAMETERS
| Field | Type | Description |
|---|---|---|
| id | string | the offsetting id (Ex. ace905dc-d129-46bd-acf6-abedac13352a) |
Errors
The CO2Certs Offsetting API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 900 | Módulo não habilitado. |
| 901 | Limite de requisições excedido. Adquira mais créditos. |
| 902 | Requisição inválida. |
| 903 | Tipo de emissão inválido. |
| 904 | CEP de origem inválido. |
| 905 | CEP de origem não encontrado. |
| 906 | CEP de destino inválido. |
| 907 | CEP de destino não encontrado. |
| 908 | Identificançao do cliente inválida. Informe um CNPJ válido. |
| 909 | CNPJ não encontrado. |
| 910 | Kilometragem inválida. |
| 911 | Requisição inválida (Valor inválido). |
| 912 | Geolocalização de origem não encontrada. |
| 913 | Geolocalização de destino não encontrada. |
| 914 | Emissão mensal estimada não informada. |
| 915 | Estimativa já confirmada. |
| 998 | Erro ao calcular rota. Tente novamente mais tarde. |
| 999 | Erro interno ou não identificado. |