Skip to main content

Gerar Relatório CBIOS

Descrição: Gera um relatório CBIOS (Créditos de Descarbonização) de forma síncrona. O relatório é processado por completo e retornado na mesma resposta HTTP. É utilizado para verificar a elegibilidade de propriedades rurais para a geração de créditos de carbono, analisando a supressão de vegetação nativa e a conformidade com os critérios do programa RenovaBio.

Cada requisição bem-sucedida consome saldo do produto CBIOS da cooperativa dona do token. A cooperativa precisa ter saldo previamente cadastrado — caso contrário, o relatório ainda é gerado, mas o débito é registrado com erro e precisa ser reconciliado manualmente.

Endpoint

POST/api/v1/integration/cbios

Regras

AtributosDescriçãoTipoObrigatório
producer_nameNome do produtorStringSim
producer_documentCPF ou CNPJ do produtor (com ou sem máscara)StringSim
usernameE-mail/login do operador responsável (usado em auditoria)StringSim
nameRótulo do relatório (aparece no histórico do backoffice)StringSim
layerCamada de análise. Valores: SOY, CORNEnumSim
civil_yearAno civil de referência (ex: 2024)IntegerSim
harvest_codeCódigo da safra (ver seção específica abaixo)IntegerSim
carsLista de códigos CAR do produtorArrayRecomendado
preserve_on_backoffice_historyPreservar o relatório no histórico do backoffice (default true)BooleanNão
preserve_resultPreservar o resultado persistido (default false)BooleanNão

Exemplo de Requisição

Exemplo de Requisição
curl -X POST \
-H "Authorization: [[apiKey]]" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
"https://homolog.api.merx.tech/api/v1/integration/cbios" \
--data '{
"producer_name": "João da Silva",
"producer_document": "39053344705",
"username": "operador@cooperativa.com.br",
"name": "CBIOS João da Silva - Safra 23/24",
"layer": "SOY",
"civil_year": 2024,
"harvest_code": 2324,
"cars": ["MT-5107925-7515B28AEE9240ACAB464D8DF624D470"]
}'

Parâmetros

Parâmetros de Cabeçalho

NomeDescriçãoTipoObrigatório
AuthorizationToken de autenticação (UUID cru, sem prefixo Bearer)StringSim
Content-Typeapplication/jsonStringSim

Importante: não envie o header cooperative-id. Ele é injetado automaticamente pelo API gateway (Kong + plugin merx-custom-auth) resolvendo o owner do token. Qualquer valor enviado pelo cliente é ignorado ou sobrescrito.

Parâmetros do Corpo

NomeDescriçãoTipoObrigatório
producer_nameNome do produtorStringSim
producer_documentCPF ou CNPJ do produtor (com ou sem pontuação)StringSim
usernameE-mail/login do operador responsável (usado em auditoria)StringSim
nameRótulo do relatório (aparece no histórico)StringSim
layerCamada de análise. Valores: SOY, CORNEnumSim
civil_yearAno civil de referênciaIntegerSim
harvest_codeCódigo da safra (ver tabela abaixo)IntegerSim
carsLista de códigos CAR para análiseArrayRecomendado
preserve_on_backoffice_historyPreservar no histórico do backoffice (default true)BooleanNão
preserve_resultPreservar o resultado persistido (default false)BooleanNão

Código da safra (harvest_code)

O harvest_code segue o formato AAAB, onde AAA são os três últimos dígitos do ano inicial e B é o último dígito do ano final da safra. Na prática: ano inicial com 2 dígitos + ano final com 2 dígitos.

Exemplo: 2324 representa a safra 2023/2024. Não envie 2024 (o ano civil sozinho), isso é motivo recorrente de erro 500 no backend.

Valores válidos atualmente cadastrados em homologação:

layerharvest_codeDescrição
SOY1819Safra 2018/2019 (soja)
SOY1920Safra 2019/2020 (soja)
SOY2021Safra 2020/2021 (soja)
SOY2122Safra 2021/2022 (soja)
SOY2223Safra 2022/2023 (soja)
SOY2324Safra 2023/2024 (soja)
SOY2425Safra 2024/2025 (soja)
CORN2122Safrinha 2022 (milho)
CORN2324Safrinha 2024 (milho)

Dicionário de Dados da Resposta

NomeDescriçãoTipo
statusStatus do processamento. Valores: GENERATED, PROCESSING, ERROREnum
created_atData de criação do relatório (timestamp Unix em milissegundos)Long
report_request_idIdentificador único do relatório geradoUUID
cooperative_idID da cooperativa (injetado pelo gateway)UUID
cooperative_nameNome da cooperativaString
layerCamada de análise. Valores: SOY, CORNEnum
civil_yearAno civil de referênciaInteger
harvestNome da safra no formato AAAA/AAAA (ex: "2023/2024")String
show_farm_null_valuesIndica se fazendas com valores nulos devem ser exibidasBoolean
producer_dataDados do produtorObject
producer_data.producer_idID do produtorUUID
producer_data.documentCPF ou CNPJ do produtorString
producer_data.nameNome do produtorString
producer_data.dap_codeCódigo DAPString
producer_data.caf_codeCódigo CAFString
producer_data.ricaf_codeCódigo RICAFString
cbiosLista de resultados por CARArray
cbios[].property_dataDados da propriedadeObject
cbios[].property_data.farm_nameNome da fazendaString
cbios[].property_data.carCódigo CARString
cbios[].property_data.areaÁrea do imóvel (ha)Number
cbios[].property_data.geometryGeometria da propriedade (GeoJSON)String
cbios[].property_data.centroidCentróide da propriedadeString
cbios[].property_data.latitudeLatitudeNumber
cbios[].property_data.longitudeLongitudeNumber
cbios[].property_data.car_statusStatus do CAR. Valores: AT, CA, SU, PEEnum
cbios[].property_data.car_status_updated_atData de atualização do statusDateTime
cbios[].car_declaration_sigefDados da declaração CAR/SIGEFObject
cbios[].car_declaration_sigef.declared_areaÁrea declaradaNumber
cbios[].car_declaration_sigef.legal_reserve_areaÁrea de reserva legalNumber
cbios[].car_declaration_sigef.permanent_protection_areaÁrea de proteção permanenteNumber
cbios[].car_declaration_sigef.tax_modulesMódulos fiscaisNumber
cbios[].car_declaration_sigef.analysis_dateData de análiseString
cbios[].car_declaration_sigef.registration_dateData de registroString
cbios[].car_declaration_sigef.rectification_dateData de retificaçãoString
cbios[].car_declaration_sigef.merx_updated_atData de atualização no MerxDateTime
cbios[].productivityDados de produtividadeArray
cbios[].productivity[].cropCulturaString
cbios[].productivity[].harvestSafraString
cbios[].productivity[].planted_areaÁrea plantadaNumber
cbios[].productivity[].layerCamada (SOY ou CORN)Enum
cbios[].productivity[].projected_productivity_yearAno de produtividade projetadaInteger
cbios[].productivity[].projected_productivityProdutividade projetadaNumber
cbios[].productivity[].estimated_total_annual_production_yearAno de produção total estimadaInteger
cbios[].productivity[].estimated_total_annual_productionProdução total anual estimadaNumber
cbios[].cbios_data_informationInformações específicas CBIOSObject
cbios[].cbios_data_information.native_area2017Área nativa em 2017 (ha)Number
cbios[].cbios_data_information.native_area_civil_yearÁrea nativa no ano civil (ha)Number
cbios[].cbios_data_information.supressed_areaÁrea suprimida (ha)Number
cbios[].cbios_data_information.harvest_biomass_areaÁrea de biomassa da safra (ha)Number
cbios[].cbios_data_information.biomass_area_supressedÁrea de biomassa suprimida (ha)Number
cbios[].cbios_data_information.harvest_supressionHouve supressão na safra. Valores: SIM, NAO, NAO_APLICAVELEnum
cbios[].cbios_data_information.cbios_statusStatus CBIOSEnum
cbios[].cbios_data_information.cbios_manual_statusStatus CBIOS manualEnum
cbios[].cbios_data_information.geometriesGeometrias relacionadasArray
cbios[].cbios_data_information.geometries[].geometry_typeTipo de geometriaEnum
cbios[].cbios_data_information.geometries[].geo_jsonGeometria em formato GeoJSONString
cbios[].cbios_data_information.geometries[].subtitleLegenda da geometriaString

Valores de Enums

Status CBIOS

ValorDescrição
NAO_ENCONTRADONão encontrado
ELEGIVELElegível para geração de CBIOS
NAO_ELEGIVELNão elegível para geração de CBIOS
NAO_APLICAVELNão aplicável

Supressão na Safra (harvest_supression)

ValorDescrição
SIMHouve supressão de vegetação
NAONão houve supressão de vegetação
NAO_APLICAVELNão aplicável

Status CAR

ValorDescrição
ATAtivo
CACancelado
SUSuspenso
PEPendente

Layer (Camada)

ValorDescrição
SOYSoja
CORNMilho

Geometry Type (Tipo de Geometria)

ValorDescrição
SUPRESSED_AREAÁrea suprimida
SOY_AREAÁrea de soja
CORN_AREAÁrea de milho
SOY_IN_ACCUMULATED_SUPPRESSION_AREAÁrea de soja em supressão acumulada
CORN_IN_ACCUMULATED_SUPPRESSION_AREAÁrea de milho em supressão acumulada
PERMANENT_PROTECTION_AREAÁrea de proteção permanente
INDIGENOUS_AREAÁrea indígena
CONSERVATION_UNIT_AREAÁrea de unidade de conservação
QUILOMBOLA_AREAÁrea quilombola

Respostas

  • 200 - Ok
{
"status": "GENERATED",
"created_at": 1711564200000,
"report_request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"cooperative_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cooperative_name": "Cooperativa Exemplo",
"layer": "SOY",
"civil_year": 2024,
"harvest": "2023/2024",
"show_farm_null_values": false,
"producer_data": {
"producer_id": "b2c3d4e5-f678-9012-abcd-ef3456789012",
"document": "39053344705",
"name": "João da Silva",
"dap_code": null,
"caf_code": null,
"ricaf_code": null
},
"cbios": [
{
"property_data": {
"farm_name": "Fazenda São José",
"car": "MT-5107925-7515B28AEE9240ACAB464D8DF624D470",
"area": 500.50,
"geometry": "{...}",
"centroid": "POINT(-55.123 -15.456)",
"latitude": -15.456,
"longitude": -55.123,
"car_status": "AT",
"car_status_updated_at": "2024-01-10T00:00:00Z"
},
"car_declaration_sigef": {
"declared_area": 500.50,
"legal_reserve_area": 100.10,
"permanent_protection_area": 25.25,
"tax_modules": 5.5,
"analysis_date": "2024-01-01",
"registration_date": "2020-06-15",
"rectification_date": null,
"merx_updated_at": "2024-01-15T10:30:00Z"
},
"productivity": [
{
"crop": "Soja",
"harvest": "2023/2024",
"planted_area": 350.00,
"layer": "SOY",
"projected_productivity_year": 2024,
"projected_productivity": 60.0,
"estimated_total_annual_production_year": 2024,
"estimated_total_annual_production": 21000.0
}
],
"cbios_data_information": {
"native_area2017": 150.25,
"native_area_civil_year": 145.50,
"supressed_area": 4.75,
"harvest_biomass_area": 350.00,
"biomass_area_supressed": 0.0,
"harvest_supression": "NAO",
"cbios_status": "ELEGIVEL",
"cbios_manual_status": null,
"geometries": [
{
"geometry_type": "SOY_AREA",
"geo_json": "{\"type\":\"Polygon\",\"coordinates\":[...]}",
"subtitle": "Área de Soja 2023/2024"
}
]
}
}
]
}
  • 400 - Bad Request
{
"timestamp": "2026-03-11T14:30:00Z",
"status": 400,
"error": "name is required"
}
  • 401 - Unauthorized

Token ausente ou inválido.

  • 500 - Internal Server Error

Erro interno. Causas conhecidas: harvest_code sem cadastro para a layer informada, cars ausente/vazio (bug latente) ou CPF/CNPJ em formato inválido.

Erros comuns

SintomaCausa provávelComo resolver
401 UnauthorizedHeader Authorization ausente ou com prefixo BearerEnviar o token UUID cru, sem o prefixo Bearer
400 Bad Request com name is required / username is requiredCampos obrigatórios do body não enviadosPreencher name e username sempre
500 Internal Server Error após poucos milissegundosharvest_code enviado como ano civil (2024) em vez de código da safra (2324)Consultar a tabela de harvest_code válidos acima
500 Internal Server Error com stacktrace de NullPointerException no carbon-apicars ausente ou vazioEnviar sempre pelo menos um CAR no array cars
500 Internal Server Error citando CPF/CNPJDocumento em formato inválidoVerificar o producer_document (aceita com ou sem máscara, mas precisa ser um CPF/CNPJ válido)