{
  "openapi": "3.0.2",
  "info": {
    "title": "pcenApi",
    "version": "1.0.0",
    "description": " ",
    "contact": {
      "name": "Time da Plataforma de Certificação de Energia",
      "url": "https://www.ccee.org.br",
      "email": "api-pcen@ccee.org.br"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    }
  },
  "servers": [
    {
      "url": "https://api-homologa.ccee.org.br/v1/pcen",
      "description": "Ambiente de homologação para as entidades de mercado que tenham interesse em testar integrações com a CCEE. Não tem garantia de disponibilidade."
    },
    {
      "url": "https://api.ccee.org.br/v1/pcen",
      "description": "Ambiente de produção para entidades que estão devidamente cadastradas na CCEE e tem permissão de acesso. Os dados deste ambiente são utilizados na operação da CCEE."
    }
  ],
  "paths": {
    "/negociacoes": {
      "summary": "Gerir as informações de negociações de emissão de certificados",
      "description": "Este endpoint é utilizado para gerenciar as negociações de emissão de certificados entre Certificadoras e Agentes de Geração. Ele permite a Certificadoras cadastrar novas negociações, consultar negociações em andamento, e estender a vigência de negociações existentes. As negociações são processos críticos para a validação e emissão de certificados de energia renovável, garantindo que os acordos entre as partes estejam documentados e aprovados conforme as regras do mercado.",
      "get": {
        "tags": [
          "Negociação"
        ],
        "parameters": [
          {
            "examples": {
              "identificador-certificadora": {
                "value": "1"
              }
            },
            "name": "id-certificadora",
            "description": "Identificador único da certificadora",
            "schema": {
              "format": "int64",
              "maximum": 999999999,
              "minimum": 1,
              "type": "integer"
            },
            "in": "query",
            "required": false
          },
          {
            "examples": {
              "usina": {
                "value": "PCH.XX.XX.XXXXXX-X.01"
              }
            },
            "name": "codigo-ceg",
            "description": "Codigo do cadastro de empreendimento de geração.",
            "schema": {
              "maxLength": 21,
              "type": "string"
            },
            "in": "query",
            "required": false
          },
          {
            "examples": {
              "Formato utilizado": {
                "value": "ISO_DATE_TIME"
              }
            },
            "name": "data-referencia",
            "description": "Data de referencia para filtrar as negociações vigentes na data em questão.",
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "in": "query",
            "required": false
          },
          {
            "examples": {
              "status": {
                "value": "AGUARDANDO_APROVACAO"
              }
            },
            "name": "status",
            "description": "Status das negociações que devem ser exibidas.",
            "schema": {
              "enum": [
                "AGUARDANDO_APROVACAO",
                "APROVADO",
                "REPROVADO",
                "CANCELADO"
              ],
              "type": "string"
            },
            "in": "query",
            "required": false
          },
          {
            "examples": {
              "Página corrente": {
                "value": "1"
              }
            },
            "name": "numero-pagina",
            "description": "Número da página corrente.",
            "schema": {
              "format": "int64",
              "maximum": 100,
              "minimum": 0,
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "examples": {
              "Quantidade de registros por página": {
                "value": "50"
              }
            },
            "name": "tamanho-pagina",
            "description": "Quantidade de registros por página.",
            "schema": {
              "format": "int64",
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "examples": {
              "identificador-negociacao": {
                "value": "1"
              }
            },
            "name": "id-negociacao",
            "description": "Identificador único da negociação",
            "schema": {
              "format": "int64",
              "maximum": 999999999,
              "minimum": 1,
              "type": "integer"
            },
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NegociacaoRespostaListaPaginada"
                },
                "examples": {
                  "Negociações encontradas": {
                    "value": {
                      "duration": 100,
                      "http-resource": "/negociacoes",
                      "http-method": "GET",
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-05-23T17:56:20.712Z",
                      "empty": false,
                      "pageNumber": 1,
                      "pageSize": 50,
                      "totalPages": 1,
                      "totalElements": 2,
                      "content": [
                        {
                          "id": 123,
                          "certificadora": {
                            "id": 1,
                            "codigo-participante-mercado": 1234
                          },
                          "ceg": {
                            "codigo": "UHE.XX.XX.XXXXXX-X.01",
                            "combustivel": "Potencial hidráulico",
                            "fonte-primaria-energia": "Hídrica",
                            "nome-empreendimento": "XXXXX"
                          },
                          "data-inicio-vigencia": "2024-01-01T00:00:00-03:00",
                          "data-fim-vigencia": "2024-08-31T00:00:00-03:00",
                          "status": "APROVADO"
                        },
                        {
                          "id": "XXX",
                          "certificadora": {
                            "id": "X",
                            "codigo-participante-mercado": "XXXX"
                          },
                          "ceg": {
                            "codigo": "UHE.XX.XX.XXXXXX-X.01",
                            "combustivel": "Potencial Hidraulico",
                            "fonte-primaria-energia": "HIDRICA",
                            "nome-empreendimento": "XXXXXXX"
                          },
                          "data-inicio-vigencia": "2024-05-01T00:00:00-03:00",
                          "data-fim-vigencia": "2024-08-31T00:00:00-03:00",
                          "status": "AGUARDANDO_APROVACAO"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Resultado de uma consulta com sucesso."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Resposta de entrada inválida": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Não existem negociações que atenda aos critérios informados."
                    }
                  }
                }
              }
            },
            "description": "Erros no processamento da mensagem em função de dados de entrada inválidos."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence."
          }
        },
        "operationId": "listaNegociacoes",
        "summary": "Consultar Negociações",
        "description": "Retornar as negociações que a certificadora ou o agente de geração esta envolvido."
      },
      "post": {
        "requestBody": {
          "description": "Lista de negociações que serão criadas.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CadastroNegociacao"
              },
              "examples": {
                "Nova negociação": {
                  "value": {
                    "codigo-agente": "XXXX",
                    "ceg": "UHE.XX.XX.XXXXXX-X.01",
                    "data-inicio-vigencia": "2019-06-01T00:00:00-03:00",
                    "data-fim-vigencia": "2024-01-31T23:59:59-03:00"
                  }
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Negociação"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NegociacaoOperacaoCCEE"
                },
                "examples": {
                  "Negociação criada": {
                    "value": {
                      "duration": 100,
                      "http-resource": "/negociacoes",
                      "http-method": "GET",
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-05-23T17:56:20.712Z",
                      "content": {
                        "id": "XXX",
                        "certificadora": {
                          "id": "X",
                          "codigo-participante-mercado": "XXXX"
                        },
                        "ceg": {
                          "codigo": "UHE.XX.XX.XXXXX-X.01",
                          "combustivel": "Potencial hidráulico",
                          "fonte-primaria-energia": "Hídrica",
                          "nome-empreendimento": "XXXXX"
                        },
                        "data-inicio-vigencia": "2019-06-01T00:00:00-03:00",
                        "data-fim-vigencia": "2024-01-31T23:59:59-03:00",
                        "status": "AGUARDANDO_APROVACAO"
                      }
                    }
                  }
                }
              }
            },
            "description": "Retorna a negociação que foi criada com sucesso. "
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Dados inválidos": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "O atributo CEG da entidade negociação não existe."
                    }
                  }
                }
              }
            },
            "description": "Processamento invalido de informações de entrada."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence."
          }
        },
        "operationId": "criaNegociacoes",
        "summary": "Cria uma negociação",
        "description": "O Certificador de energia utiliza este endpoint para realizar o cadastro de uma negociação de emissão de certificado.\n\nRessalta-se que não pode haver negociações concorrentes entre usinas e certificadoras, com intersecção de vigëncias."
      }
    },
    "/negociacoes/{id}/cancelamento": {
      "summary": "Realiza o cancelamento de negociações entre certificadoras e agentes de geração.",
      "description": "Permite que seja feita o cancelamento de uma negociação, sendo obrigatória que seja dado uma justificativa.",
      "post": {
        "requestBody": {
          "description": "Informações da aprovação.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelamentoNegociacao"
              },
              "examples": {
                "Cancelamento de negociação": {
                  "value": {
                    "justificativa": "Cancelado por inconstência"
                  }
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Negociação"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NegociacaoOperacaoCCEE"
                },
                "examples": {
                  "Negociação cancelada": {
                    "value": {
                      "duration": 100,
                      "http-resource": "/negociacoes/123/cancelamento",
                      "http-method": "POST",
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-05-23T17:56:20.712Z",
                      "content": {
                        "id": "XXX",
                        "certificadora": {
                          "id": "X",
                          "codigo-participante-mercado": "XXXX"
                        },
                        "ceg": {
                          "codigo": "UHE.XX.XX.XXXXXX-X.01",
                          "combustivel": "Potencial hidráulico",
                          "fonte-primaria-energia": "Hídrica",
                          "nome-empreendimento": "XXXXX"
                        },
                        "data-inicio-vigencia": "2019-06-01T00:00:00-03:00",
                        "data-fim-vigencia": "2024-01-31T23:59:59-03:00",
                        "status": "CANCELADO",
                        "justificativa-status": "Cancelado por inconstência"
                      }
                    }
                  }
                }
              }
            },
            "description": "Retorna a entidade de negociação que foi atualizada com a nova situação com sucesso."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Erro cancelamento negociação": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Limite máximo de 40 caracteres no campo “Justificativa de Cancelamento“."
                    }
                  }
                }
              }
            },
            "description": "Algum erro na criação da situação de negóciação, com por exemplo aprovar ou reprovar uma negociação com a situação já preenchida."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando um agente de geração tentar acessar uma negociação que não é sua ou uma certificadora tentar aprovar uma negociação."
          }
        },
        "operationId": "cancelamentoNegociacao",
        "summary": "Cancelamento de negociação",
        "description": "Permite que a certificadora que registrou a negociação realize o cancelamento da negociação associada no caminho da requisição."
      },
      "parameters": [
        {
          "examples": {
            "Id da Negociação": {
              "value": "XXX"
            }
          },
          "name": "id",
          "description": "Identificador unico da negociação.",
          "schema": {
            "format": "int64",
            "type": "integer"
          },
          "in": "path",
          "required": true
        }
      ]
    },
    "/tipos-certificados": {
      "summary": "Gerencia informações de tipos de certificados.",
      "description": "A missão deste endpoint é gerencia as informações de tipos de certificados.\n\nAtualmente para as definições de negócio da plataforma de certificado de energia, só faz sentido retorna as informações de tipos de certificados ativos para registro de operações.",
      "get": {
        "tags": [
          "Tipo de certificados"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipoCertificadoRespostaListaPaginada"
                },
                "examples": {
                  "Tipo de certificados ativos": {
                    "value": {
                      "duration": 100,
                      "http-resource": "/tipos-certificados",
                      "http-method": "GET",
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-05-23T17:56:20.712Z",
                      "empty": false,
                      "pageNumber": 1,
                      "pageSize": 10,
                      "totalPages": 1,
                      "totalElements": 2,
                      "content": [
                        {
                          "id": 240,
                          "sigla": "REC",
                          "nome": "Certificado de Energia Renovável"
                        },
                        {
                          "id": 240,
                          "sigla": "REC_AUTO",
                          "nome": "CER de AutoAbatimento"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Retorna a lista de resultado da pesquisa."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence."
          }
        },
        "operationId": "listaTiposCertificados",
        "summary": "Tipos de certificados ativos",
        "description": "Retorna a lista de certificados ativos para a data atual."
      }
    },
    "/montantes-energia": {
      "summary": "Gerir as informações de geração consolidados por mês de referência para a certificadora.",
      "description": "Este endpoint deve ser utilizado para gerir as informações de geração consolidados por mês de referência para a certificadora.\n\nA partir deste controle, a certificadora informará as emissões de RECs e degradar o saldo de geração no mês.",
      "get": {
        "tags": [
          "Geração"
        ],
        "parameters": [
          {
            "name": "id-certificadora",
            "description": "Identificador único da certificadora",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query"
          },
          {
            "name": "tamanho-pagina",
            "description": "Quantidade de registros por página.",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "name": "numero-pagina",
            "description": "Número da página corrente.",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "name": "ano-mes-referencia",
            "description": "Mês e ano de referência da geração no formato MM/AAAA.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "name": "codigo-ceg",
            "description": "Código do Cadastro de Empreendimento de Geração (CEG) associado à negociação. Este código é utilizado para identificar usinas e outros empreendimentos de geração envolvidos na emissão de certificados.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MontanteEnergiaRespostaListaPaginada"
                },
                "examples": {
                  "montantes": {
                    "value": {
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-08-02T10:06:39.4680818-03:00",
                      "duration": 1139,
                      "http-resource": "/montantes-energia",
                      "http-method": "GET",
                      "page-size": 1,
                      "page-number": 0,
                      "total-pages": 1,
                      "total-elements": 1,
                      "empty": false,
                      "content": [
                        {
                          "id": "XXXXXX",
                          "ano-mes-referencia": "05/2024",
                          "total-geracao": 8255.18339,
                          "ceg": {
                            "codigo": "UFV.XX.XX.XXXXXX-X.01",
                            "combustivel": "Radiação solar",
                            "fonte-primaria-energia": "Solar",
                            "nome-empreendimento": "XXXXXXX"
                          },
                          "valor-saldo": 7035.22557
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Resultado de uma consulta com sucesso."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "dados-invalidos": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Mês e ano de contabilização inválido para o mês e ano de referência informado."
                    }
                  }
                }
              }
            },
            "description": "Erros no processamento da mensagem em função de dados de entrada inválidos."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence."
          }
        },
        "operationId": "listaMontantesEnergia",
        "summary": "Consultar Montantes de Energia",
        "description": "Retornar os montantes de energia que a certificadora e agente de geração estão envolvido de negociações que estão APROVADAS."
      }
    },
    "/negociacoes/{id}/encerramento-vigencia": {
      "summary": "Encerrar a vigência de negociações aprovadas.",
      "description": "Negociações aprovadas pelo gerador e que estão sem data de vigência podem ser encerradas pela certificadora. Uma vez encerrada, não é possível editar novamente a data de término da negociação. Para as negociações cadastradas com uma data de término não será possível modificar a data de término.",
      "put": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EncerramentoVigenciaNegociacao"
              },
              "examples": {
                "Encerramento de vigência": {
                  "value": {
                    "mes": 12,
                    "ano": 2024
                  }
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Negociação"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NegociacaoOperacaoCCEE"
                },
                "examples": {
                  "Negociação com vigência enerrada": {
                    "value": {
                      "duration": 100,
                      "http-resource": "/negociacoes/123/encerramento-vigencia",
                      "http-method": "PUT",
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-05-23T17:56:20.712Z",
                      "content": {
                        "id": 123,
                        "certificadora": {
                          "id": 1,
                          "codigo-participante-mercado": 1234
                        },
                        "ceg": {
                          "codigo": "UHE.XX.XX.XXXXXX-X.01",
                          "combustivel": "Potencial hidráulico",
                          "fonte-primaria-energia": "Hídrica",
                          "nome-empreendimento": "XXXXX"
                        },
                        "data-inicio-vigencia": "2019-06-01T00:00:00-03:00",
                        "data-fim-vigencia": "2024-12-31T23:59:59-03:00",
                        "status": "APROVADA"
                      }
                    }
                  }
                }
              }
            },
            "description": "Retorna a entidade de negociação que foi atualizada com a nova data de vigência."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Atributo inválido": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Informe um identificador valido para transação."
                    }
                  }
                }
              }
            },
            "description": "Algum erro na alteração da data de vigência da negociação, como por exemplo a negociação não estar aprovada."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando um agente de geração tentar acessar uma negociação que não é sua ou uma certificadora tentar aprovar uma negociação.    "
          }
        },
        "operationId": "encerramentoVigenciaNegociacao",
        "summary": "Encerrar vigência de negociação",
        "description": "Permite que a certificadora que registrou a negociação realize o encerramento da negociação associada no caminho da requisição, para negociações com data final de vigência em aberto e aprovadas pelo Agente Gerador."
      },
      "parameters": [
        {
          "examples": {
            "Id da Negociação": {
              "value": "123"
            }
          },
          "name": "id",
          "description": "Identificador unico da negociação.",
          "schema": {
            "format": "int64",
            "type": "integer"
          },
          "in": "path",
          "required": true
        }
      ]
    },
    "/emissoes-consumo": {
      "summary": "Gerir as informações de emissões de consumo.",
      "description": "Este endpoint deve ser utilizado para gerir as informações de emissões de consumo pelas certificadoras, com negociações APROVADAS com geradores. \nAs emissões estão vinculadas a períodos contratuais de suas negociações.",
      "get": {
        "tags": [
          "Consumo"
        ],
        "parameters": [
          {
            "examples": {
              "quantidade-itens-por-pagina": {
                "value": "50"
              }
            },
            "name": "tamanho-pagina",
            "description": "Quantidade de registros por página.",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "examples": {
              "pagina-corrente": {
                "value": "5"
              }
            },
            "name": "numero-pagina",
            "description": "Número da página corrente.",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query",
            "required": true
          },
          {
            "examples": {
              "mes-ano-emissao": {
                "value": "\"07/2024\""
              }
            },
            "name": "ano-mes-referencia-emissao",
            "description": "Mês e ano de referência da emissão do consumo no formato MM/AAAA.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "examples": {
              "mes-ano-geracao": {
                "value": "\"06/2022\""
              }
            },
            "name": "ano-mes-referencia-geracao",
            "description": "Mês e ano de referência da geração no formato MM/AAAA.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "examples": {
              "CEG": {
                "value": "\"UHE.XX.XX.XXXXXX-X.01\""
              }
            },
            "name": "codigo-ceg",
            "description": "Código do Cadastro de Empreendimento de Geração (CEG) associado à negociação. Este código é utilizado para identificar usinas e outros empreendimentos de geração envolvidos na emissão de certificados.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "examples": {
              "REC": {
                "value": "\"REC\""
              },
              "REC autoabatimento": {
                "value": "\"REC_AUTO\""
              }
            },
            "name": "sigla-tipo-certificado",
            "description": "Sigla do tipo de certificado",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "required": false
          },
          {
            "examples": {
              "CNPJ consumidor REC autoabatimento": {
                "value": "\"XXXXXXXXXXXXXX\""
              },
              "CNPJ consumidor REC autoabatimento - com zeros": {
                "value": "\"XXXXXXXXXXXXXX\""
              }
            },
            "name": "cnpj-consumidor",
            "description": "CNPJ do consumidor, aplicável somente para REC de Autoabatimento.",
            "schema": {
              "maxLength": 14,
              "pattern": "d{14}",
              "type": "string"
            },
            "in": "query"
          },
          {
            "examples": {
              "Identificador da negociação.": {
                "value": "XX"
              }
            },
            "name": "id-negociacao",
            "description": "Identificador único da negociação. Pode ser usado para consultar uma negociação específica.",
            "schema": {
              "format": "int64",
              "type": "integer"
            },
            "in": "query",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExtratoEmissaoRECRespostaListaPaginada"
                },
                "examples": {
                  "Montantes": {
                    "value": {
                      "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
                      "instant": "2024-08-02T10:06:39.4680818-03:00",
                      "duration": 11111,
                      "http-resource": "/montantes-energia",
                      "http-method": "GET",
                      "page-size": 1,
                      "page-number": 0,
                      "total-pages": 1,
                      "total-elements": 1,
                      "empty": false,
                      "content": [
                        {
                          "id": 111111,
                          "ano-mes-referencia": "05/2024",
                          "total-geracao": 1111.11111,
                          "ceg": {
                            "codigo": "UFV.XX.XX.XXXXXX-X.01",
                            "combustivel": "Radiação solar",
                            "fonte-primaria-energia": "Solar",
                            "nome-empreendimento": "XXXXX"
                          },
                          "valor-saldo": 111.11111
                        }
                      ]
                    }
                  }
                }
              }
            },
            "description": "Extratos"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Dados entrada inválidos": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Mês e ano de contabilização inválido para o mês e ano de referência informado."
                    }
                  }
                }
              }
            },
            "description": "Erros no processamento da mensagem em função de dados de entrada inválidos."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence."
          }
        },
        "operationId": "listaEmissoesConsumo",
        "summary": "Listar as emissões",
        "description": "Extrato emissões consumo"
      },
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CadastroEmissaoConsumo"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Consumo"
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmissaoConsumoOperacaoCCEE"
                }
              }
            },
            "description": "Retorna a emissão de consumo que foi criada com sucesso. "
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Dados inválidos": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "Mês e ano de contabilização inválido para o mês e ano de referência informado."
                    }
                  }
                }
              }
            },
            "description": "Erros no processamento da mensagem em função de dados de entrada inválidos."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Não autenticado": {
                    "value": {
                      "errorCode": "401",
                      "errorMessage": "Token invalido."
                    }
                  }
                }
              }
            },
            "description": "Não autorizado. Semanticamente essa resposta significa não autenticado. Ou seja, o cliente deve se autenticar para obter a resposta solicitada."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Erro"
                },
                "examples": {
                  "Acesso negado": {
                    "value": {
                      "errorCode": "PCEN-BFF.XXXX",
                      "errorMessage": "A empresa autenticada não é uma certificadora."
                    }
                  }
                }
              }
            },
            "description": "Acesso ao recurso não é permitido, pode acontecer quando uma certificadora tenta listar, criar ou manipular um dado que não o pertence.                "
          }
        },
        "operationId": "criaEmissoesConsumo",
        "summary": "Cria uma emissão de consumo",
        "description": "O Certificador de energia utiliza este endpoint para realizar o cadastro de uma emissão de consumo com o gerador em negociações APROVADAS, e retornará os dados e identificadores unicos da transação."
      }
    }
  },
  "components": {
    "schemas": {
      "Negociacao": {
        "title": "Root Type for Negociacao",
        "description": "Registro de uma negociação para emissão de certificado entre uma certificadora e um agente de geração",
        "required": [
          "certificadora",
          "ceg",
          "data-inicio-vigencia",
          "status"
        ],
        "type": "object",
        "properties": {
          "certificadora": {
            "$ref": "#/components/schemas/Certificadora",
            "description": "Certificadora associada na negociação"
          },
          "id": {
            "format": "int64",
            "description": "Identificador único da negociação",
            "type": "integer"
          },
          "ceg": {
            "$ref": "#/components/schemas/CEG",
            "description": "Cadastro de Empreendimento de Geração associado a negociação."
          },
          "data-inicio-vigencia": {
            "format": "date-time",
            "description": "Data de inicio do periodo de vigência da negociação.\nFormato é ISO_DATE_TIME.",
            "maxLength": 25,
            "pattern": "yyyy-MM-dd'T'HH:mm:ssXXX",
            "type": "string"
          },
          "data-fim-vigencia": {
            "format": "date-time",
            "description": "Data de termino da vigëncia da negociação. Caso este campo esteja null, então a negociação continua vigênte indefinidamente.",
            "maxLength": 25,
            "pattern": "yyyy-MM-dd'T'HH:mm:ssXXX",
            "type": "string"
          },
          "status": {
            "description": "Representa a situação da Negociação. Ela pode ser AGUARDANDO_APROVACAO, APROVADO, REPROVADO e CANCELADO.",
            "enum": [
              "AGUARDANDO_APROVACAO",
              "APROVADO",
              "REPROVADO",
              "CANCELADO"
            ],
            "type": "string",
            "readOnly": true,
            "example": "AGUARDANDO_APROVACAO"
          },
          "justificativa-status": {
            "description": "Descrição que justifica o status da negociação.",
            "maxLength": 40,
            "pattern": "^[0-9A-Za-z]+$",
            "type": "string"
          }
        },
        "example": {
          "id": 123,
          "certificadora": {
            "id": 1,
            "codigo-participante-mercado": 1234
          },
          "ceg": {
            "codigo": "PCH.XX.XX.XXXXXX-X.01",
            "nucleo": "XXXXXX-X",
            "combustivel": "Potencial Hidraulico",
            "fonte-primaria-energia": "HIDRICA",
            "nome-empreendimento": "XXXXXX"
          },
          "data-inicio-vigencia": "2024-05-20T00:00:00-03:00",
          "data-fim-vigencia": "2024-05-20T00:00:00-03:00",
          "status": "REPROVADO",
          "justificativa-status": "ALGUMA JUSTIFICATIVA"
        }
      },
      "Certificadora": {
        "title": "Root Type for Certificadora",
        "description": "",
        "required": [
          "codigo-participante-mercado"
        ],
        "type": "object",
        "properties": {
          "id": {
            "format": "int64",
            "description": "Identificador único da certificadora",
            "type": "integer"
          },
          "codigo-participante-mercado": {
            "format": "int64",
            "type": "integer"
          }
        },
        "example": {
          "id": "1",
          "codigo-participante-mercado": "XXXX"
        }
      },
      "BaseRespostaListaPaginadaCCEE": {
        "description": "Resultado padrão dos endpoints que retornarem listas paginadas.",
        "type": "object",
        "allOf": [
          {
            "required": [
              "empty"
            ],
            "type": "object",
            "properties": {
              "pageSize": {
                "description": "Tamanho da página",
                "maximum": 50,
                "type": "integer",
                "example": "10"
              },
              "pageNumber": {
                "description": "Número da página",
                "type": "integer",
                "example": "1"
              },
              "totalPages": {
                "format": "int32",
                "description": "Total de paginas para consumir todo o resultado da pesquisa.",
                "type": "integer",
                "readOnly": true,
                "example": "2"
              },
              "totalElements": {
                "format": "int64",
                "description": "Total de elementos resultantes da requisição",
                "type": "integer",
                "readOnly": true,
                "example": "100"
              },
              "empty": {
                "description": "Indica se o retorno possui itens ou não.",
                "type": "boolean"
              }
            }
          },
          {
            "$ref": "#/components/schemas/BaseRespostaCCEE"
          }
        ],
        "example": {
          "duration": 100,
          "http-resource": "http://dev-ws-pcen.energia.org.br/v1/negociacoes",
          "http-method": "GET",
          "id": "d32517fc-ef65-49ab-83dd-5e6acdee15c7",
          "instant": "2024-05-23T17:56:20.712Z",
          "empty": false,
          "pageNumber": 1,
          "pageSize": 10,
          "totalPages": 2,
          "totalElements": 17
        }
      },
      "BaseRespostaCCEE": {
        "description": "Tipo de retorno base para todas as repostas de operações da CCEE.",
        "required": [
          "id",
          "instant",
          "duration",
          "http-resource",
          "http-method"
        ],
        "type": "object",
        "properties": {
          "id": {
            "description": "Identificador único da transação",
            "maxLength": 36,
            "pattern": "UUID",
            "type": "string",
            "example": "c964897d-4fa3-4b6c-a127-a7f390159e2e"
          },
          "instant": {
            "format": "date-time",
            "description": "Momento em que a transação foi processada.",
            "maxLength": 32,
            "pattern": "yyyy-MM-dd'T'HH:mm:ss. SSSXXX",
            "type": "string",
            "example": "2020-10-31T01:30:00.000-05:00"
          },
          "duration": {
            "format": "int64",
            "description": "Tempo em milisegundos utilizado para processar a requisição no backend",
            "type": "integer",
            "example": "12"
          },
          "http-resource": {
            "description": "Caminho completo do recurso que esta sendo exibido.",
            "type": "string",
            "example": "http://dev-ws-pcen.energia.org.br/v1/negociacoes/123"
          },
          "http-method": {
            "description": "Método http utilizado para acionar o caminho apresentado no atributo \"resource\" da mensagem.",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE",
              "OPTIONS",
              "HEAD"
            ],
            "type": "string"
          }
        },
        "example": {
          "duration": 100,
          "http-resource": "http://dev-ws-pcen.energia.org.br/v1/negociacoes",
          "http-method": "GET",
          "id": "d32517fc-ef65-49ab-83dd-5e6acdee15c7",
          "instant": "2024-05-23T17:56:20.712Z"
        },
        "x-discriminator-value": {
          "content": "*"
        }
      },
      "NegociacaoRespostaListaPaginada": {
        "description": "Resposta para pesquisa de negociação",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaListaPaginadaCCEE"
          }
        ],
        "properties": {
          "content": {
            "description": "Lista com negociações que foram resultados da pesquisa.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Negociacao"
            }
          }
        },
        "example": {
          "duration": 100,
          "http-resource": "/negociacoes",
          "http-method": "GET",
          "id": "d32517fc-ef65-49ab-83dd-5e6acdee15c7",
          "instant": "2024-05-23T17:56:20.712Z",
          "empty": false,
          "pageNumber": 1,
          "pageSize": 10,
          "totalPages": 1,
          "totalElements": 2,
          "content": [
            {
              "id": 123,
              "certificadora": {
                "id": 1,
                "codigo-participante-mercado": 1234
              },
              "ceg": {
                "codigo": "PCH.XX.XX.XXXXXX-X.01",
                "nucleo": "XXXXXX-X",
                "combustivel": "Potencial Hidraulico",
                "fonte-primaria-energia": "HIDRICA",
                "nome-empreendimento": "XXXXXX"
              },
              "data-inicio-vigencia": "2024-05-20T00:00:00-03:00",
              "data-fim-vigencia": "2024-05-20T00:00:00-03:00",
              "status": "REPROVADO",
              "justificativa-status": "ALGUMA JUSTIFICATIVA"
            },
            {
              "id": 124,
              "certificadora": {
                "id": 1,
                "codigo-participante-mercado": 1234
              },
              "ceg": {
                "codigo": "PCH.XX.XX.XXXXXX-X.01",
                "nucleo": "XXXXXX-X",
                "combustivel": "Potencial Hidraulico",
                "fonte-primaria-energia": "HIDRICA",
                "nome-empreendimento": "XXXXX"
              },
              "data-inicio-vigencia": "2024-05-20T00:00:00-03:00",
              "data-fim-vigencia": "2024-05-20T00:00:00-03:00",
              "status": "REPROVADO",
              "justificativa-status": "ALGUMA JUSTIFICATIVA"
            }
          ]
        }
      },
      "CertificadoraRespostaListaPaginada": {
        "description": "Resposta para pesquisa de negociação",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaListaPaginadaCCEE"
          }
        ],
        "properties": {
          "content": {
            "description": "Lista com negociações que foram resultados da pesquisa.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Certificadora"
            }
          }
        },
        "example": {
          "duration": 100,
          "http-resource": "http://dev-ws-pcen.energia.org.br/v1/certificadoras",
          "http-method": "GET",
          "id": "d32517fc-ef65-49ab-83dd-5e6acdee15c7",
          "instant": "2024-05-23T17:56:20.712Z",
          "empty": false,
          "pageNumber": 1,
          "pageSize": 10,
          "totalPages": 1,
          "totalElements": 2,
          "content": [
            {
              "id": "some text",
              "codigo-participante-mercado": "some text"
            },
            {
              "id": "some text",
              "codigo-participante-mercado": "some text"
            }
          ]
        }
      },
      "Erro": {
        "description": "",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaCCEE"
          }
        ],
        "properties": {
          "errorCode": {
            "description": "Titulo do Erro ou Classe que representa o erro.",
            "type": "string"
          },
          "errorMessage": {
            "description": "Mensagem detalhada com informações sobre o erro.",
            "type": "string"
          }
        },
        "example": {
          "errorCode": "InvalidParameterException",
          "errorMessage": "O campo id deve estar preenchido."
        }
      },
      "NegociacaoOperacaoCCEE": {
        "description": "Retorno padrão para requisições de negociação.",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaCCEE"
          }
        ],
        "properties": {
          "content": {
            "$ref": "#/components/schemas/Negociacao",
            "description": ""
          }
        },
        "example": {
          "duration": 100,
          "http-resource": "/negociacoes",
          "http-method": "GET",
          "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
          "instant": "2024-05-23T17:56:20.712Z",
          "content": {
            "id": 123,
            "certificadora": {
              "id": 1,
              "codigo-participante-mercado": 1234
            },
            "ceg": {
              "codigo": "PCH.XX.XX.XXXXXX-X.01",
              "nucleo": "XXXXXX-X",
              "combustivel": "Potencial Hidraulico",
              "fonte-primaria-energia": "HIDRICA",
              "nome-empreendimento": "XXXXXX"
            },
            "data-inicio-vigencia": "2024-05-20T00:00:00-03:00",
            "data-fim-vigencia": "2024-05-20T00:00:00-03:00",
            "status": "REPROVADO",
            "justificativa-status": "ALGUMA JUSTIFICATIVA"
          }
        }
      },
      "TipoCertificado": {
        "title": "Root Type for TipoCertificado",
        "description": "Um tipo de certificado indica caracteristicas associadas ao certificado emitido pela plataforma de certificação de energia.",
        "required": [
          "sigla",
          "nome"
        ],
        "type": "object",
        "properties": {
          "id": {
            "format": "int64",
            "description": "Identificador unico do tipo de certificado.",
            "type": "integer",
            "example": "240"
          },
          "sigla": {
            "description": "Sigla para facilitar a identificação do certificado.",
            "maxLength": 10,
            "minLength": 3,
            "pattern": "^(REC|REC_AUTO)$",
            "type": "string",
            "example": "REC"
          },
          "nome": {
            "description": "Nome do certificado",
            "maxLength": 40,
            "minLength": 3,
            "pattern": "^[0-9A-Za-z]+$",
            "type": "string",
            "example": "Certificado de Energia Renovável"
          }
        },
        "example": {
          "id": 240,
          "sigla": "REC",
          "nome": "Certificado de Energia Renovável",
          "ativo": true
        }
      },
      "TipoCertificadoRespostaListaPaginada": {
        "description": "Resposta para pesquisa de negociação",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaListaPaginadaCCEE"
          }
        ],
        "properties": {
          "content": {
            "description": "Lista com tipos de certificado que foram resultados da pesquisa.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TipoCertificado"
            }
          }
        },
        "example": {
          "duration": 100,
          "http-resource": "http://dev-ws-pcen.energia.org.br/v1/tipos-certificados",
          "http-method": "GET",
          "id": "d32517fc-ef65-49ab-83dd-5e6acdee15c7",
          "instant": "2024-05-23T17:56:20.712Z",
          "empty": false,
          "pageNumber": 1,
          "pageSize": 10,
          "totalPages": 1,
          "totalElements": 2,
          "content": [
            {
              "id": 240,
              "sigla": "REC",
              "nome": "Certificado de Energia Renovável"
            },
            {
              "id": 240,
              "sigla": "I-REC",
              "nome": "Certificado Internacional de Energia Renovável"
            }
          ]
        }
      },
      "CancelamentoNegociacao": {
        "title": "Root Type for SituacaoNegociacao",
        "description": "Descreve a situação de uma negociação que pode estar aprovada ou reprovada.",
        "required": [
          "justificativa"
        ],
        "type": "object",
        "properties": {
          "justificativa": {
            "description": "Justificativa da situação da negociação. Campo é obrigatório quando a situação é REPROVADA ou CANCELADA.",
            "type": "string"
          }
        },
        "example": {
          "justificativa": "some text"
        }
      },
      "CEG": {
        "title": "Root Type for CEG",
        "description": "Objeto que apresenta as caracteristicas do cadastro de empreendimento de geração.",
        "type": "object",
        "properties": {
          "codigo": {
            "type": "string"
          },
          "nucleo": {
            "type": "string"
          },
          "combustivel": {
            "type": "string"
          },
          "fonte-primaria-energia": {
            "type": "string"
          },
          "nome-empreendimento": {
            "type": "string"
          }
        },
        "example": {
          "codigo": "PCH.XX.XX.XXXXXX-X.01",
          "nucleo": "XXXXXX-X",
          "combustivel": "Potencial Hidraulico",
          "fonte-primaria-energia": "HIDRICA",
          "nome-empreendimento": "XXXXXX"
        }
      },
      "CadastroNegociacao": {
        "title": "Root Type for Negociacao",
        "description": "Registro de uma negociação para emissão de certificado entre uma certificadora e um agente de geração",
        "required": [
          "codigo-agente",
          "ceg",
          "data-inicio-vigencia"
        ],
        "type": "object",
        "properties": {
          "codigo-agente": {
            "format": "int64",
            "description": "Código do Agente que representa a certificadora.",
            "type": "integer"
          },
          "ceg": {
            "description": "Código do Empreendimento de Geração associado a negociação.",
            "type": "string"
          },
          "data-inicio-vigencia": {
            "format": "date-time",
            "description": "Data de inicio do periodo de vigência da negociação.\nFormato é ISO_DATE_TIME.",
            "pattern": "yyyy-MM-dd'T'HH:mm:ssXXX",
            "type": "string"
          },
          "data-fim-vigencia": {
            "format": "date-time",
            "description": "Data de termino da vigëncia da negociação. Caso este campo esteja null, então a negociação continua vigênte indefinidamente.",
            "pattern": "yyyy-MM-dd'T'HH:mm:ssXXX",
            "type": "string"
          }
        },
        "example": {
          "ceg": "PCH.XX.XX.XXXXXX-X.01",
          "codigo-agente": 1234,
          "data-inicio-vigencia": "2024-01-01T00:00:00-03:00",
          "data-fim-vigencia": "2024-05-20T00:00:00-03:00"
        }
      },
      "MontanteEnergia": {
        "description": "Dados de geração consolidados por mês de referência para a certificadora.",
        "required": [
          "ano-mes-referencia",
          "total-geracao",
          "id",
          "ceg",
          "valor-saldo"
        ],
        "type": "object",
        "properties": {
          "id": {
            "format": "int64",
            "description": "Identificador único do montante de energia.",
            "type": "integer"
          },
          "ano-mes-referencia": {
            "description": "Período de referência da geração no formato MM/AAAA.",
            "maxLength": 7,
            "pattern": "d{2}/d{4}",
            "type": "string"
          },
          "total-geracao": {
            "description": "Volume de geração mensal em MWh.",
            "type": "number"
          },
          "ceg": {
            "$ref": "#/components/schemas/CEG",
            "description": "Código do Empreendimento de Geração associado ao montante de energia."
          },
          "valor-saldo": {
            "description": "Valor do saldo remanescente em MWh.",
            "type": "number"
          }
        },
        "example": {
          "id": 727322,
          "ano-mes-referencia": "05/2024",
          "total-geracao": 8255.18339,
          "ceg": {
            "codigo": "UFV.XX.XX.XXXXXX-X.01",
            "combustivel": "Radiação solar",
            "fonte-primaria-energia": "Solar",
            "nome-empreendimento": "XXXXX"
          },
          "valor-saldo": 7035.22557
        }
      },
      "MontanteEnergiaRespostaListaPaginada": {
        "description": "Resposta para pesquisa de montante de energia.",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaListaPaginadaCCEE"
          }
        ],
        "properties": {
          "content": {
            "description": "Lista com montantes de energia que foram resultados da pesquisa.",
            "maxItems": 50,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MontanteEnergia"
            }
          }
        },
        "example": {
          "id": "b54491ff-faef-43d6-992a-e6dcb149fae9",
          "instant": "2024-08-02T10:06:39.4680818-03:00",
          "duration": 1139,
          "http-resource": "/montantes-energia",
          "http-method": "GET",
          "page-size": 1,
          "page-number": 0,
          "total-pages": 1,
          "total-elements": 1,
          "empty": false,
          "content": [
            {
              "id": 727322,
              "ano-mes-referencia": "05/2024",
              "total-geracao": 8255.18339,
              "ceg": {
                "codigo": "UFV.XX.XX.XXXXXX-X.01",
                "combustivel": "Radiação solar",
                "fonte-primaria-energia": "Solar",
                "nome-empreendimento": "XXXXX"
              },
              "valor-saldo": 7035.22557
            }
          ]
        }
      },
      "EncerramentoVigenciaNegociacao": {
        "title": "Root Type for SituacaoNegociacao",
        "description": "Descreve o mês e o ano de vigência para uma negociação aprovada",
        "required": [
          "ano",
          "mes"
        ],
        "type": "object",
        "properties": {
          "ano": {
            "format": "int64",
            "description": "",
            "type": "integer"
          },
          "mes": {
            "format": "int64",
            "description": "",
            "type": "integer"
          }
        },
        "example": "{\n    \"mes\": 01,\n    \"ano\": 2024\n}"
      },
      "CadastroEmissaoConsumo": {
        "description": "Registro de uma emissão de consumo por parte da certificadora.",
        "required": [
          "id-negociacao",
          "ceg",
          "sigla-tipo-certificado",
          "ano-mes-referencia",
          "montante-emitido"
        ],
        "type": "object",
        "properties": {
          "id-negociacao": {
            "format": "int64",
            "description": "Identificador único da negociação",
            "maximum": 999999999,
            "minimum": 1,
            "type": "integer",
            "example": "1234"
          },
          "ceg": {
            "description": "Código do Empreendimento de Geração associado a negociação.",
            "type": "string",
            "example": "PCH.XX.XX.XXXXXX-X.01"
          },
          "sigla-tipo-certificado": {
            "description": "Sigla do tipo de certificado",
            "maxLength": 8,
            "pattern": "^(REC|REC_AUTO)$",
            "type": "string",
            "example": "REC_AUTO"
          },
          "ano-mes-referencia": {
            "description": "Período de referência da geração no formato MM/AAAA.",
            "maxLength": 7,
            "pattern": "d{2}/d{4}",
            "type": "string",
            "example": "07/2024"
          },
          "montante-emitido": {
            "format": "double",
            "description": "Montante emitido em MWh.",
            "maximum": 9999999999.999998,
            "minimum": 0.1,
            "type": "number",
            "example": "100.458789"
          },
          "cnpj-consumidor": {
            "description": "CNPJ do consumidor pertencente ao mesmo grupo econômico do gerador envolvido no contrato de negociação de atributos, previamente cadastrado na Plataforma de Certificação de Energia.\nPode ser fornecido formatado ou não.\nO CNPJ do consumidor é obrigatório quando a sigla-tipo-certificado é igual a REC_AUTO.",
            "maxLength": 14,
            "pattern": "d{14}",
            "type": "string",
            "example": "XXXXXXXXXXXXXX"
          }
        },
        "additionalProperties": false,
        "example": {
          "id-negociacao": 123,
          "ceg": "PCH.XX.XX.XXXXXX-X.01",
          "sigla-tipo-certificado": "REC",
          "ano-mes-referencia": "07/2024",
          "montante-emitido": 100.458789,
          "cnpj-consumidor": "XXXXXXXXXXXXXX"
        }
      },
      "EmissaoConsumo": {
        "description": "Registro de uma emissão de consumo por parte da certificadora.",
        "required": [
          "id",
          "montante-energia",
          "negociacao",
          "data-emissao",
          "montante-consumido",
          "tipo-certificado"
        ],
        "type": "object",
        "properties": {
          "id": {
            "format": "int64",
            "description": "Identificador único da emissão de consumo.",
            "type": "integer"
          },
          "montante-energia": {
            "$ref": "#/components/schemas/MontanteEnergia",
            "description": "Montante de energia associado a emissão de consumo."
          },
          "negociacao": {
            "$ref": "#/components/schemas/Negociacao",
            "description": "Negociação associada a emissão de consumo."
          },
          "data-emissao": {
            "format": "date",
            "description": "Data de emissão do consumo.",
            "type": "string"
          },
          "montante-consumido": {
            "description": "Valor do montante consumido em MWh.",
            "type": "number"
          },
          "codigoHash": {
            "description": "Código hash do blockchain.",
            "type": "string"
          },
          "tipo-certificado": {
            "$ref": "#/components/schemas/TipoCertificado",
            "description": "Tipo de certificado associado a emissão de consumo",
            "example": "REC"
          },
          "cnpj-consumidor": {
            "description": "CNPJ do consumidor pertencente ao mesmo grupo econômico do gerador envolvido no contrato de negociação de atributos, quando a sigla-tipo-certificado é igual a REC_AUTO.",
            "maxLength": 14,
            "pattern": "d{14}",
            "type": "string"
          }
        },
        "example": {
          "id": 31,
          "montante-energia": {
            "id": 440438
          },
          "negociacao": {
            "id": 1122
          },
          "data-emissao": "2024-07-30",
          "montante-consumido": 33.1,
          "codigo-hash": "REC-XXXXXXXXX",
          "tipo-certificado": {
            "id": 240
          }
        }
      },
      "EmissaoConsumoOperacaoCCEE": {
        "description": "Retorno padrão para requisições de emissão de consumo.",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaCCEE"
          }
        ],
        "properties": {
          "content": {
            "$ref": "#/components/schemas/EmissaoConsumo",
            "description": ""
          }
        },
        "example": {
          "id": "a11111aa-aaaa-11a1-111a-a1aaaa111aaa1",
          "instant": "2024-07-30T09:29:49.279238257-03:00",
          "duration": 560,
          "http-resource": "/emissoes-consumo",
          "http-method": "POST",
          "content": {
            "id": 31,
            "montante-energia": {
              "id": "XXXXX"
            },
            "negociacao": {
              "id": "XXXX"
            },
            "data-emissao": "2024-07-30",
            "montante-consumido": 33.1,
            "codigo-hash": "REC-XXXXXXX",
            "tipo-certificado": {
              "id": 240
            }
          }
        }
      },
      "ExtratoEmissaoRECRespostaListaPaginada": {
        "description": "Reposta com os Extratos das Emissões de RECs.",
        "required": [
          "content"
        ],
        "type": "object",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BaseRespostaListaPaginadaCCEE"
          }
        ],
        "properties": {
          "content": {
            "description": "Contéudo do extrato de emissões de consumo",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtratoEmissaoREC"
            }
          }
        }
      },
      "ExtratoEmissaoREC": {
        "description": "Extrato da emissão consumo de RECs",
        "required": [
          "id-negociacao",
          "ceg",
          "sigla-tipo-certificado",
          "ano-mes-referencia-geracao",
          "montantes-emitidos",
          "ano-mes-referencia-emissao",
          "codigo-hash"
        ],
        "type": "object",
        "properties": {
          "id-negociacao": {
            "format": "int64",
            "description": "Identificador da negociação.",
            "maximum": 1,
            "minimum": 1,
            "type": "integer",
            "example": "456321"
          },
          "ceg": {
            "description": "Código Único de Empreendimentos de Geração",
            "type": "string",
            "example": "UTE.XX.XX.XXXXXX-X.01"
          },
          "sigla-tipo-certificado": {
            "description": "Sigla do tipo de certificado emitido",
            "type": "string",
            "example": "REC_AUTO"
          },
          "cnpj-consumidor": {
            "description": "CNPJ do consumidor associado ao grupo econômico.\nEste atributo é aplicável somente para a sigla do tipo de certificado REC_AUTO (REC de Autoabatimento).",
            "maxLength": 14,
            "pattern": "d{14}",
            "type": "string",
            "example": "68367537000128"
          },
          "ano-mes-referencia-geracao": {
            "description": "Mês e Ano de referência da geração do montante de energia para o qual o REC foi emitido.\nFormato: MM/yyyy",
            "type": "string",
            "example": "07/2022"
          },
          "montantes-emitidos": {
            "format": "double",
            "description": "Quantidade de montantes de energia emitidos para o REC.\nSão considerados 6 (seis) casas decimais.",
            "type": "number",
            "example": "31.123456"
          },
          "ano-mes-referencia-emissao": {
            "description": "Mês e ano de refereência da emissão do REC para o montante.\nFormato: MM/yyyy",
            "type": "string",
            "example": "07/2024"
          },
          "codigo-hash": {
            "description": "Código hash da transação.",
            "type": "string",
            "example": "REC-XXXXXXXX"
          }
        },
        "example": {
          "id-negociacao": 38,
          "ceg": "UTE.XX.XX.XXXXXX-X.01",
          "sigla-tipo-certificado": "REC_AUTO",
          "cnpj-consumidor": "XXXXXXXXXXXXXX",
          "ano-mes-referencia-geracao": "07/2022",
          "montantes-emitidos": 10.123456,
          "ano-mes-referencia-emissao": "07/2024",
          "codigo-hash": "REC-XXXXXXX"
        }
      }
    },
    "responses": {
      "BaseRequisicaoInvalidaCCEE": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Erro"
            }
          }
        },
        "description": ""
      },
      "BaseRequisicaoNaoAutenticadaCCEE": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Erro"
            }
          }
        },
        "description": ""
      }
    },
    "securitySchemes": {
      "SSO-PlataformaIntegracao-HML": {
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://api-homologa.ccee.org.br/oauth/token",
            "scopes": {
              "PCEN": "O scope 'PCEN' é requerido para que o provedor de identidade da CCEE gere o token de acesso com as permissões necessárias para o acesso nesta API."
            }
          }
        },
        "type": "oauth2",
        "description": "Autenticação OAuth2 da CCEE do ambiente de homologação."
      },
      "SSO-PlataformaIntegracao-PROD": {
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://api.ccee.org.br/oauth/token",
            "scopes": {}
          }
        },
        "type": "oauth2",
        "description": "Autenticação OAuth2 da CCEE do ambiente de produção."
      }
    }
  },
  "security": [
    {
      "SSO-PlataformaIntegracao-HML": [
        "PCEN"
      ],
      "SSO-PlataformaIntegracao-PROD": [
        "PCEN"
      ]
    }
  ],
  "tags": [
    {
      "name": "Consumo",
      "description": "Endpoints para gestão do consumo de montantes gerados"
    },
    {
      "name": "Geração",
      "description": "Montantes gerados"
    },
    {
      "name": "Negociação",
      "description": "Negociação de atributos"
    },
    {
      "name": "Tipo de certificados",
      "description": "Tipo de certificados"
    }
  ]
}