openapi: 3.0.0 info: title: API Pix version: "2.7.0" license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0 contact: name: Suporte PIX BCB email: suporte.pix@bcb.gov.br url: https://www.bcb.gov.br/estabilidadefinanceira/pix description: |- A API Pix padroniza serviços oferecidos pelo PSP recebedor no contexto do arranjo Pix, direcionando: - o gerenciamentos de cobranças, com e sem recorrências, em lotes ou não; - o acompanhamento dos Pix e suas devoluções; - as consultas. Os serviços expostos pelo PSP recebedor permitem ao usuário recebedor estabelecer integração de sua automação com os serviços Pix do PSP. # Evolução da API Pix A API Pix busca respeitar __[SemVer](https://semver.org/lang/pt-BR/)__. Nesse sentido, mudanças compatíveis não devem gerar nova versão _major_. A versão da API é composta por 4 elementos: _major_, _minor_, _patch_ e _release candidate_. A versão `v[x]`que consta no path da URL é o elemento _major_ da versão da API. A evolução da versão se dá seguinte forma: - Major: alterações incompatíveis, com quebra de contrato (v1.0.0 → v2.0.0) - Minor: alterações compatíveis, sem quebra de contrato (v1.1.0 → v1.2.0) - Patch: bugfixes, esclarecimentos às especificações, sem alterações funcionais (v1.1.1 → v1.1.2) - Release candidate: versões de pré-lançamento de qualquer patch futuro, minor ou major (v1.0.0-rc.1 → v1.0.0-rc.22) Alterações sem quebra de contrato e esclarecimentos às especificações podem ocorrer a qualquer momento. Clientes devem estar preparados para lidar com essas mudanças sem quebrar. As seguintes mudanças são esperadas e consideradas retrocompatíveis: - Adição de novos recursos na API Pix; - Adição de novos parâmetros opcionais; - Adição de novos campos em respostas da API Pix; - Alteração da ordem de campos; - Adição de novos elementos em enumerações. # Tratamento de erros A API Pix retorna códigos de status HTTP para indicar sucesso ou falhas das requisições, são eles: - Códigos `2xx` indicam sucesso; - Códigos `4xx` indicam falhas causadas pelas informações enviadas pelo cliente ou pelo estado atual das entidades e; - Códigos `5xx` indicam problemas no serviço no lado da API Pix. As respostas de erro incluem no corpo detalhes do erro seguindo o _schema_ da [RFC 7807](https://tools.ietf.org/html/rfc7807). O campo `type` identifica o tipo de erro e na API Pix segue o padrão: `https://pix.bcb.gov.br/api/v2/error/` O padrão acima listado, referente ao campo `type`, não consiste, necessariamente, em uma URL que apresentará uma página web válida, ou um endpoint válido, embora possa, futuramente, ser exatamente o caso. O objetivo primário é apenas e tão somente identificar o tipo de erro. Convém reforçar que a API Pix contempla uma lista de produtos e respectivas funcionalidades ofertadas pelo PSP recebedor. Cabendo à relação contratual com cada usuário recebedor a concessão da totalidade ou de um subconjunto de acessos relacionados aos produtos ofertados. Por exemplo, o usuário recebedor, ao acessar uma funcionalidade não contemplada no seu escopo contratual, receberá o erro geral `AcessoNegado` descrito na próxima seção. Abaixo estão listados os tipos de erro e possíveis violações da API Pix. ## Gerais Esta seção reúne erros que poderiam ser retornados por quaisquer endpoints listados na API Pix. ### `RequisicaoInvalida` * __Significado__: Requisição inválida. * __HTTP Status Code__: [400 Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1). ### `AcessoNegado` * __Significado__: Requisição de participante autenticado que viola alguma regra de autorização. * __HTTP Status Code__: [403 Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3). ### `NaoEncontrado` * __Significado__: Entidade não encontrada. * __HTTP Status Code__: [404 Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4). ### `PermanentementeRemovido` * __Significado__: Indica que a entidade existia, mas foi permanentemente removida. * __HTTP Status Code__: [410 Gone](https://tools.ietf.org/html/rfc7231#section-6.5.9). ### `ErroInternoDoServidor` * __Significado__: Condição inesperada ao processar requisição. * __HTTP Status Code__: [500 Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1). ### `ServicoIndisponivel` * __Significado__: Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento. * __HTTP Status Code__: [503 Service Unavailable](https://tools.ietf.org/html/rfc7231#section-6.6.4). ### `IndisponibilidadePorTempoEsgotado` * __Significado__: Indica que o serviço demorou além do esperado para retornar. * __HTTP Status Code__: [504 Gateway Timeout](https://tools.ietf.org/html/rfc7231#section-6.6.5). ## Tag CobPayload Esta seção reúne erros retornados pelos endpoints organizados sob a tag `CobPayload`. Estes erros indicam problemas na tentativa de recuperação, via _location_, do Payload JSON que representa a cobrança. ### `CobPayloadNaoEncontrado` * __Significado__: a cobrança em questão não foi encontrada para a location requisitada. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4) ou [410](https://tools.ietf.org/html/rfc7231#section-6.5.9). * __endpoints__: `GET /{pixUrlAccessToken}`, `GET /cobv/{pixUrlAccessToken}`. Se a presente location exibia uma cobrança, mas não a exibirá mais de maneira permanentemente, pode-se aplicar o HTTP status code [410](https://tools.ietf.org/html/rfc7231#section-6.5.9). Se a presente location não está exibindo nenhuma cobrança, pode-se utilizar o HTTP status code [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). Uma cobrança pode estar "expirada" (`calendario.expiracao`), "vencida", "Concluida", entre outros estados em que não poderia ser efetivamente paga. Nesses casos, é uma liberalidade do PSP recebedor retornar o presente código de erro ou optar por servir o payload de qualquer maneira, objetivando fornecer uma informação adicional ao usuário pagador final a respeito da cobrança. ### `CobPayloadOperacaoInvalida` * __Significado__: a cobrança existe, mas a requisição é inválida. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /cobv/{pixUrlAccessToken}`. __Violações__: - `codMun` não respeita o _schema_. - `codMun` não é um código válido segundo a __[tabela de municípios do IBGE](https://www.ibge.gov.br/explica/codigos-dos-municipios.php)__. - `DPP` não respeita o _schema_. - `DPP` anterior ao momento presente. - `DPP` superior à validade da cobrança em função dos parâmetros `calendario.dataDeVencimento` e `calendario.validadeAposVencimento`. Exemplo: `dataDeVencimento` => 2020-12-25, `validadeAposVencimento` => 10, `DPP` => 2021-01-05. Neste exemplo, o parâmetro `DPP` é inválido considerando o contexto apresentado porque é uma data em que a cobrança não poderá ser paga. A cobrança, neste exemplo, não será considerada válida a partir da data 2021-01-05. ## Tag RecPayload Esta seção reúne erros retornados pelos endpoints organizados sob a tag `RecPayload`. Estes erros indicam problemas na tentativa de recuperação, via _location_, do Payload JSON que representa a recorrência. ### `RecPayloadNaoEncontrado` * __Significado__: a recorrência em questão não foi encontrada para a location requisitada. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4) ou [410](https://tools.ietf.org/html/rfc7231#section-6.5.9). * __endpoint__: `GET /rec/{recUrlAccessToken}`. Se a presente location exibia uma recorrência, mas não a exibirá mais de maneira permanentemente, pode-se aplicar o HTTP status code [410](https://tools.ietf.org/html/rfc7231#section-6.5.9). Se a presente location não está exibindo nenhuma recorrência, pode-se utilizar o HTTP status code [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). Uma recorrência pode estar encerrada, cancelada ou rejeitada, nesses casos, é uma liberalidade do PSP recebedor retornar o presente código de erro ou optar por servir o payload de qualquer maneira, objetivando fornecer uma informação adicional ao usuário pagador final a respeito da recorrência. ### `RecPayloadOperacaoInvalida` * __Significado__: a recorrência em questão encontra-se em encerrada, rejeitada ou cancelada para a location requisitada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoint__: `GET /rec/{recUrlAccessToken}`. __Violações__ para o endpoint `GET /rec/{recUrlAccessToken}`: - O campo `recUrlAccessToken` referencia uma recorrência encerrada, rejeitada ou cancelada. ## Tag Rec Esta seção reúne erros retornados pelos endpoints organizados sob a tag `Rec`. Esses erros indicam problemas no gerenciamento de uma recorrência. ### `RecNaoEncontrada` * __Significado__: Recorrência não encontrada para o idRec informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /rec/{idRec}`. ### `RecOperacaoInvalida` * __Significado__: a requisição que busca alterar ou criar uma recorrência não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[POST|PATCH] /rec/{idRec}`. __Violações__ para o endpoint `POST /rec`: - O objeto `rec.vinculo` não respeita o _schema_. - O campo `rec.calendario.dataInicial` é anterior à data de criação da recorrência. - O campo `rec.calendario.dataFinal` é anterior ao campo `rec.calendario.dataInicial`. - O campo `rec.calendario.periodicidade` não respeita o _schema_. - O objeto `rec.valor` não respeita o _schema_. - O campo `rec.valor.valorRec` não respeita o _schema_. - O campo `rec.valor.valorMinimoRecebedor` não respeita o _schema_. - Ambos os campos `rec.valor.valorRec` e `rec.valor.valorMinimoRecebedor` estão preenchidos. - O objeto `rec.recebedor` não respeita o _schema_. - O campo `rec.politicaRetentativa` não respeita o _schema_. - O location referenciado por `rec.loc` inexiste. - O location referenciado por `rec.loc` já está sendo utilizado por outra recorrência. __Violações__ para o endpoint `PATCH /rec/{idRec}`: - O campo `rec.calendario.dataInicial` é anterior à data de criação da recorrência. - O location referenciado por `rec.loc` inexiste. - O location referenciado por `rec.loc` já está sendo utilizado por outra recorrência. - O campo `rec.status` não respeita o _schema_. - A recorrência encontra-se encerrada. - O campo `rec.loc` somente pode ser alterado quando a recorrência apresentar-se com o status CRIADA. - O campo `rec.calendario.dataInicial` somente pode ser alterado quando a recorrência apresentar-se com o status CRIADA. - O campo `rec.dadosJornada.txid` não pode ser alterado quando a recorrência apresentar-se com o status REJEITADA ou CANCELADA. ### `RecConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de recorrências que não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /rec` e `GET /rec/{idRec}`. __Violações__ específicas para o endpoint `GET /rec`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - ambos os parâmetros `cpf` e `cnpj` estão preenchidos. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag SolicRec Esta seção reúne erros retornados pelos endpoints organizados sob a tag `SolicRec`. Esses erros indicam problemas no gerenciamento de uma solicitação de confirmação de recorrência. ### `SolicRecNaoEncontrada` * __Significado__: Solicitação de recorrência não encontrada para o idSolicRec informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET] /solicrec/{idSolicRec}`. ### `SolicRecOperacaoInvalida` * __Significado__: a requisição que busca criar ou alterar uma solicitação de confirmação de recorrência que não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[POST] /solicrec` e `PATCH /solicrec/{idSolicRec}`. __Violações__ para o endpoint `POST /solicrec`: - O objeto `solicrec.calendario` não respeita o _schema_. - O campo `solicrec.calendario.dataExpiracaoSolicitacao` é anterior à data de criação da solicitação da recorrência. - O objeto `solicrec.destinatario` não respeita o _schema_. - Existe uma solicitação ativa referente ao mesmo `solicrec.idRec`. __Violações__ para o endpoint `PATCH /solicrec/{idSolicRec}`: - Não é possível cancelar uma solicitação de recorrência com o status diferente de CRIADA ou RECEBIDA ## Tag CobR Esta seção reúne erros retornados pelos endpoints organizados sob a tag `CobR`. Esses erros indicam problemas no gerenciamento de uma cobrança recorrente. ### `CobRNaoEncontrado` * __Significado__: Cobrança não encontrada para o txid informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /cobr/{txid}` e `[POST] /cobr/{txid}/retentativa/{data}`. ### `CobROperacaoInvalida` * __Significado__: a requisição que busca alterar ou criar uma cobrança recorrente não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[POST|PUT|PATCH] /cobr/{txid}` e `[POST] /cobr/{txid}/retentativa/{data}`. __Violações__ para o endpoint `POST|PUT /cobr/{txid}`: - O campo `cobr.infoAdicional` não respeita o _schema_. - O campo `cobr.status` não respeita o _schema_. - O objeto `cobr.calendario` não respeita o _schema_. - O campo `cobr.calendario.dataDeVencimento` é anterior à data de criação da cobrança. - O campo `cobr.valor` não respeita o _schema_. - O objeto `cobr.recebedor` não respeita o _schema_. - Os campos `cobr.recebedor.conta` e `cobr.recebedor.agencia` correspondem a uma conta que não pertence a este usuário recebedor. - O objeto `cobr.devedor` não respeita o _schema_. - O campo `cobr.txid` encontra-se em uso. - Existe uma cobrança expirada referente ao mesmo `cobr.idRec` no mesmo período. - Existe uma cobrança criada referente ao mesmo `cobr.idRec` no mesmo período. __Violações__ para o endpoint `PATCH /cobr/{txid}`: - Não é possível cancelar uma cobrança em uma data igual ou maior que a data prevista da primeira liquidação. __Violações__ para o endpoint `POST /cobr/{txid}/retentativa/{data}`: - Existe uma tentativa vigente para a `data` informada. - O parâmetro `data` não corresponde a uma data futura. - A política configurada na recorrência não permite retentativa de cobrança. ### `CobRConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de cobranças que não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /cobr` e `GET /cobr/{txid}`. __Violações__ específicas para o endpoint `GET /cobr`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - ambos os parâmetros `cpf` e `cnpj` estão preenchidos. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag Cob Esta seção reúne erros retornados pelos endpoints organizados sob a tag `Cob`. Esses erros indicam problemas no gerenciamento de uma cobrança para pagamento imediato. ### `CobNaoEncontrado` * __Significado__: Cobrança não encontrada para o txid informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /cob/{txid}`. ### `CobOperacaoInvalida` * __Significado__: a requisição que busca alterar ou criar uma cobrança para pagamento imediato não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[POST|PUT|PATCH] /cob/{txid}`. __Violações__ para os endpoints `PUT|PATCH /cob/{txid}`: - O campo `cob.calendario.expiracao` é igual ou menor que `zero`. - O campo `cob.valor.original` não respeita o _schema_. - O campo `cob.valor.original` é `zero`. - O objeto `cob.devedor` não respeita o _schema_. - O campo `cob.chave` não respeita o _schema_. - O campo `cob.chave` corresponde a uma conta que não pertence a este usuário recebedor. - O campo `solicitacaoPagador` não respeita o _schema_. - O objeto `infoAdicionais` não respeita o _schema_. - O `location` referenciado por `loc.id` inexiste. - O `location` referenciado por `loc.id` já está sendo utilizado por outra cobrança. - O `location` referenciado por `cob.loc.id` apresenta tipo "cobv" (deveria ser "cob"). __Violações__ específicas para o endpoint `PUT /cob/{txid}`: - A cobrança já existe, não está no status ATIVA, e a presente requisição busca alterá-la. __Violações__ específicas para o endpoint `PATCH /cob/{txid}`: - A cobrança não está ATIVA, e a presente requisição busca alterá-la. - A cobrança está ATIVA, e a presente requisição propõe alterar seu status para _REMOVIDA_PELO_USUARIO_RECEBEDOR_ juntamente com outras alterações (não faz sentido remover uma cobrança ao mesmo tempo em que se realizam alterações que não serão aproveitadas). - o campo `cob.status` não respeita o _schema_. ### `CobConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de cobranças para pagamento imediato não respeitam o _schema_ ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /cob` e `GET /cob/{txid}`. __Violações__ específicas para o endpoint `GET /cob`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - ambos os parâmetros `cpf` e `cnpj` estão preenchidos. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. __Violações__ específicas para o endpoint `GET /cob/{txid}`: - o parâmetro `revisao` corresponde a uma revisão inexistente para a cobrança apontada pelo parâmetro `txid`. ## Tag CobV Esta seção reúne erros retornados pelos endpoints organizados sob a tag `CobV`. Esses erros indicam problemas no gerenciamento de uma cobrança com vencimento. ### `CobVNaoEncontrada` * __Significado__: Cobrança com vencimento não encontrada para o txid informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /cobv/{txid}`. ### `CobVOperacaoInvalida` * __Significado__: a requisição que busca alterar ou criar uma cobrança com vencimento não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[PUT|PATCH] /cobv/{txid}`. __Violações__ para os endpoints `PUT|PATCH /cobv/{txid}`: - Este `txid` está associado a um lote e no referido lote, o status desta cobrança está atribuído como "EM_PROCESSAMENTO" ou "NEGADA". - O campo `cobv.calendario.dataDeVencimento` é anterior à data de criação da cobrança. - O campo `cobv.calendario.validadeAposVencimento` é menor do que zero. - O objeto `cobv.devedor` não respeita o _schema_. - O objeto `cobv.devedor` não respeita o _schema_. - O campo `cobv.chave` não respeita o _schema_. - O campo `cobv.chave` corresponde a uma conta que não pertence a este usuário recebedor. - O campo `solicitacaoPagador` não respeita o _schema_. - O objeto `infoAdicionais` não respeita o _schema_. - O location referenciado por `cobv.loc.id` inexiste. - O location referenciado por `cobv.loc.id` já está sendo utilizado por outra cobrança. - O location referenciado por `cobv.loc.id` apresenta tipo "cob" (deveria ser "cobv"). - O campo `cobv.valor.original` não respeita o _schema_. - O campo `cobv.valor.original` apresenta o valor `zero`. - O objeto `cobv.valor.multa` não respeita o _schema_. - O objeto `cobv.valor.juros` não respeita o _schema_. - O objeto `cobv.valor.abatimento` não respeita o _schema_. - O objeto `cobv.valor.desconto` não respeita o _schema_. - O objeto `cobv.valor.abatimento` representa um valor maior ou igual ao valor da cobrança original ou maior ou igual a 100%. - O objeto `cobv.valor.desconto` apresenta algum elemento de desconto que representa um valor maior ou igual ao valor da cobrança original ou maior ou igual a 100%. - O objeto `cobv.valor.desconto` apresenta algum elemento cuja data seja posterior à data de vencimento representada por `calendario.dataDeVencimento`. - O objeto `cobv.valor.desconto` apresenta modalidade no valor `1` ou `2`, porém `cobv.valor.desconto.valorPerc` encontra-se preenchido - O objeto `cobv.valor.desconto` apresenta modalidade no valor `1` ou `2`, porém o array `cobv.valor.desconto.descontoDataFixa` está vazio ou nulo. - O objeto `cobv.valor.desconto` apresenta modalidade nos valores de `3` a `6`, porém o elemento `cobv.valor.desconto.valorPerc` não está preenchido. - O objeto `cobv.valor.desconto` apresenta modalidade nos valores de `3` a `6`, porém o elemento `cobv.valor.desconto.descontoDataFixa` está preenchido ou não nulo. __Violações__ específicas para o endpoint `PUT /cobv/{txid}`: - A cobrança já existe, não está ATIVA, e a presente requisição busca alterá-la __Violações__ específicas para o endpoint `PATCH /cobv/{txid}`: - A cobrança não está ATIVA, e a presente requisição busca alterá-la - A cobrança está ATIVA, e a presente requisição propõe alterar seu status para _REMOVIDA_PELO_USUARIO_RECEBEDOR_ juntamente com outras alterações (não faz sentido remover uma cobrança ao mesmo tempo em que se realizam alterações que não serão aproveitadas). - o campo `cob.status` não respeita o _schema_. ### `CobVConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de cobranças com vencimento não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /cobv` e `GET /cobv/{txid}`. __Violações__ específicas para o endpoint `GET /cobv`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - ambos os parâmetros `cpf` e `cnpj` estão preenchidos. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. __Violações__ específicas para o endpoint `GET /cobv/{txid}`: - o parâmetro `revisao` corresponde a uma revisão inexistente para a cobrança apontada pelo parâmetro `txid`. ## Tag LoteCobV Esta seção reúne erros referentes a endpoints que tratam do gerenciamento de lotes de cobrança. ### `LoteCobVNaoEncontrado` * __Significado__: Lote não encontrado para o `id` informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /lotecobv/{id}`. ### `LoteCobVOperacaoInvalida` * __Significado__: a requisição que busca alterar ou criar um lote de cobranças com vencimento não respeita o _schema_ ou está semanticamente errada. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `[PUT|PATCH] /lotecobv/{id}`. __Violações__ para os endpoints `PUT|PATCH /lotecobv/{id}`: - O campo `loteCobV.descricao` não respeita o _schema_. - O objeto `loteCobV.cobsV` não respeita o _schema_. __Violações__ para o endpoint `PUT /lotecobv/{id}`: - a presente requisição tenta criar um conjunto de cobranças dentre as quais pelo menos uma cobrança já encontra-se criada. - a presente requisição busca alterar um lote já existente, entretanto contém um array de solicitações de alteração de cobranças que não referencia exatamente as mesmas cobranças referenciadas pela requisição original que criou o lote. Uma vez criado um lote, não se pode remover ou adicionar solicitações de criação ou alteração de cobranças a este lote. __Violações__ para o endpoint `PATCH /lotecobv/{id}`: - a presente requisição busca alterar um lote já existente e contém, no `array` de cobranças representado por `cobsv`, uma cobrança não existente no array de cobranças atribuído pela requisição original que criou o lote. Uma vez criado um lote, não se pode remover ou adicionar cobranças a este lote. __Violações__ para os endpoints `GET /lotecobv/{id}`: - __observação__: para cada elemento do array `cobsv`, retornado por este endpoint, caso a requisição de criação de cobrança esteja em status "NEGADA", o atributo `problema` deste elemento deve ser preenchido respeitando o [schema](https://tools.ietf.org/html/rfc7807) referenciado pela API Pix. - o preenchimento do atributo `problema`, conforme descrito acima, segue o mesmo regramento dos erros especificados para os endpoints `[PUT/PATCH /cobv/{txid}]`, de maneira a possibilitar, ao usuário recebedor, entender qual foi a violação cometida ao se tentar criar a cobrança referenciada por este elemento do array `cobsv`. ### `LoteCobVConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de lotes de cobrança com vencimento não respeitam o _schema_ ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /lotecobv` e `GET /lotecobv/{id}`. __Violações__ específicas para o endpoint `GET /lotecobv`: - algum dos parâmetros informados para a consulta não respeitam o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag PayloadLocation Esta seção reúne erros referentes a endpoints que tratam do gerenciamento de _locations_. ### `PayloadLocationNaoEncontrado` * __Significado__: _Location_ não encontrada para o `id` informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET|PATCH] /loc/{id}`, `DELETE /loc/{id}/txid`. ### `PayloadLocationOperacaoInvalida` * __Significado__: a presente requisição busca criar uma location sem respeitar o _schema_ estabelecido. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `POST /loc`. __Violações__ para o endpoint `POST /loc`: - o campo `tipoCob` não respeita o _schema_. ### `PayloadLocationConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de _locations_ não respeitam o _schema_ ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /loc` e `GET /loc/{id}`. __Violações__ específicas para o endpoint `GET /loc`: - algum dos parâmetros informados para a consulta não respeitam o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag PayloadLocationRec Esta seção reúne erros referentes a endpoints que tratam do gerenciamento de _locations_ de uma recorrência. ### `PayloadLocationRecNaoEncontrado` * __Significado__: _Location_ não encontrada para o `id` informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `[GET] /locrec/{id}`, `DELETE /locrec/{id}/idRec`. ### `PayloadLocationRecConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de _locations_ não respeitam o _schema_ ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /locrec` e `GET /locrec/{id}`. __Violações__ específicas para o endpoint `GET /locrec`: - algum dos parâmetros informados para a consulta não respeitam o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag Pix Reúne erros em endpoints de gestão de Pix recebidos e solicitação de devoluções. ### `PixNaoEncontrado` * __Significado__: pix não encontrada para o `e2eid` informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `GET /pix/{e2eid}` ### `PixDevolucaoNaoEncontrada` * __Significado__: devolução representada por {id} não encontrada para o `e2eid` informado. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `GET /pix/{e2eid}/devolucao/{id}` ### `PixConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de pix recebidos não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /pix`. __Violações__ específicas para o endpoint `GET /pix`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - ambos os parâmetros `cpf` e `cnpj` estão preenchidos. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ### `PixDevolucaoInvalida` * __Significado__: a presente requisição de devolução não respeita o _schema_ ou não faz sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `PUT /pix/{e2eid}/devolucao/{id}`. __Violações__ específicas para o endpoint `PUT /pix/{e2eid}/devolucao/{id}`: - O campo `devolucao.valor` não respeita o _schema_. - A presente requisição de devolução, em conjunto com as demais prévias devoluções, se aplicável, excederia o valor do pix originário. - A presente requisição de devolução apresenta um `{id}` já utilizado por outra requisição de devolução para o `{e2eid}` em questão. - A presente requisição de devolução viola a janela de tempo permitida para solicitações de devoluções de um pix (hoje estabelecida como 90 dias desde a data de liquidação original do pix). ## Tag Webhook Reúne erros dos endpoints que tratam do gerenciamento dos Webhooks da API Pix. ### `WebhookOperacaoInvalida` * __Significado__: a presente requisição busca criar um webhook sem respeitar o _schema_ ou, ainda, apresenta semântica inválida. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `PUT /webhook/{chave}`. __Violações__ para o endpoint `PUT /webhook/{chave}`: - o parâmetro {chave} não corresponde a uma chave DICT válida. - o parâmetro {chave} não corresponde a uma chave DICT pertencente a este usuário recebedor. - Campo webhook.webhookUrl não respeita o _schema_. ### `WebhookNaoEncontrado` * __Significado__: o webhook denotado por {chave} não encontra-se estabelecido. * __HTTP Status Code__: [404](https://tools.ietf.org/html/rfc7231#section-6.5.4). * __endpoints__: `GET /webhook/{chave}`, `DELETE /webhook/{chave}` ### `WebhookConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de webhooks ativados não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /webhook`. __Violações__ específicas para o endpoint `GET /webhook`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag WebhookRec Reúne erros dos endpoints que tratam do gerenciamento dos Webhooks de recorrências da API Pix. ### `WebhookRecOperacaoInvalida` * __Significado__: a presente requisição busca criar um webhook sem respeitar o _schema_ ou, ainda, apresenta semântica inválida. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `PUT /webhookrec`. __Violações__ para o endpoint `PUT /webhookrec`: - o campo `webhookUrl` não respeita o _schema_. ### `WebhookRecConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de webhooks ativados não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /webhookrec`. __Violações__ específicas para o endpoint `GET /webhookrec`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. ## Tag WebhookCobR Reúne erros dos endpoints que tratam do gerenciamento dos Webhooks de cobranças recorrentes da API Pix. ### `WebhookCobROperacaoInvalida` * __Significado__: a presente requisição busca criar um webhook sem respeitar o _schema_ ou, ainda, apresenta semântica inválida. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `PUT /webhookcobr`. __Violações__ para o endpoint `PUT /webhookcobr`: - o campo `webhookUrl` não respeita o _schema_. ### `WebhookCobRConsultaInvalida` * __Significado__: os parâmetros de consulta à lista de webhooks ativados não respeitam o schema ou não fazem sentido semanticamente. * __HTTP Status Code__: [400](https://tools.ietf.org/html/rfc7231#section-6.5.1). * __endpoints__: `GET /webhookcobr`. __Violações__ específicas para o endpoint `GET /webhookcobr`: - algum dos parâmetros informados para a consulta não respeita o _schema_. - o _timestamp_ representado pelo parâmetro `fim` é anterior ao timestamp representado pelo parâmetro `inicio`. - o parâmetro `paginacao.paginaAtual` é negativo. - o parâmetro `paginacao.itensPorPagina` é negativo. servers: - url: https://pix.example.com/api/ description: Servidor de Produção - url: https://pix-h.example.com/api/ description: Servidor de Homologação tags: - name: CobPayload x-displayName: Reúne endpoints (locations) que retornam o Payload JSON que representa uma Cobrança description: |- Reúne endpoints (locations) utilizados pelo software do PSP pagador para recuperar o payload JSON que representa uma cobrança. Os endpoints listados nesta Tag apresentam requisitos de autenticação e autorização diferenciados em relação aos outros endpoints listados na presente API. São endpoints __abertos__ para que qualquer cliente da internet possa se conectar. Cada _location_ é uma _[url de capacidade](https://www.w3.org/TR/capability-urls/)_, funcionalidade implementada via o fragmento `{pixUrlAccessToken}`. Para mais informações, consultar o [Manual de Padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). - name: RecPayload x-displayName: Reúne endpoints (locations) que retornam o Payload JSON que representa uma Recorrência description: |- Reúne endpoints (locations) utilizados pelo software do PSP pagador para recuperar o payload JSON que representa uma recorrência. Os endpoints listados nesta Tag apresentam requisitos de autenticação e autorização diferenciados em relação aos outros endpoints listados na presente API. São endpoints __abertos__ para que qualquer cliente da internet possa se conectar. Cada _location_ é uma _[url de capacidade](https://www.w3.org/TR/capability-urls/)_, funcionalidade implementada via o fragmento `{recUrlAccessToken}`. Para mais informações, consultar o [Manual de Padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). - name: Rec x-displayName: Gerenciamento de recorrências description: |- Reúne endpoints destinados a lidar com gerenciamento de recorrências. - name: SolicRec x-displayName: Gerenciamento de solicitações de recorrências description: |- Reúne endpoints destinados a lidar com gerenciamento de solicitações de recorrências. - name: CobR x-displayName: Gerenciamento de cobranças associadas a uma recorrência description: |- Reúne endpoints destinados a lidar com gerenciamento de cobranças associadas a uma recorrência. - name: Cob x-displayName: Gerenciamento de cobranças para pagamento imediato description: |- Reúne endpoints destinados a lidar com gerenciamento de cobranças imediatas. - name: CobV x-displayName: Gerenciamento de cobranças com vencimento description: |- Reúne endpoints destinados a lidar com gerenciamento de cobranças com vencimento. - name: LoteCobV x-displayName: Gerenciamento de cobranças com vencimento em lote description: |- Reúne endpoints destinados a lidar com gerenciamento de cobranças com vencimento em lote. - name: PayloadLocation x-displayName: Configuração de locations para payloads description: |- Reúne endpoints destinados a lidar com configuração e remoção de locations para uso dos payloads - name: PayloadLocationRec x-displayName: Configuração de locations para payloads de recorrências description: |- Reúne endpoints destinados a lidar com configuração e remoção de locations para uso dos payloads de recorrências - name: Pix x-displayName: Gerenciamento de Pix recebidos description: |- reúne endpoints destinados a lidar com gerenciamento de Pix recebidos. - name: Webhook x-displayName: Gerenciamento de notificações description: |- Reúne endpoints para gerenciamento de notificações por parte do PSP recebedor ao usuário recebedor. - name: WebhookRec x-displayName: Gerenciamento de notificações de recorrências description: |- Reúne endpoints para gerenciamento de notificações de recorrências por parte do PSP recebedor ao usuário recebedor. - name: WebhookCobR x-displayName: Gerenciamento de notificações de cobranças recorrentes description: |- Reúne endpoints para gerenciamento de notificações de cobranças recorrentes por parte do PSP recebedor ao usuário recebedor. paths: /cob/{txid}: parameters: - name: txid in: path required: true schema: $ref: "#/components/schemas/TxId" put: tags: - "Cob" summary: "Criar cobrança imediata." security: - OAuth2: [cob.write] description: |- Endpoint para criar uma cobrança imediata. requestBody: $ref: "#/components/requestBodies/CobBody" responses: "201": description: "Cobrança imediata criada" content: "application/json": schema: $ref: "#/components/schemas/CobGerada" examples: retorno1: $ref: "#/components/examples/cobResponse1" retorno2: $ref: "#/components/examples/cobResponse5" retorno3: $ref: "#/components/examples/cobResponse6" retorno4: $ref: "#/components/examples/cobResponse7" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "Cob" summary: "Revisar cobrança imediata." security: - OAuth2: [cob.write] requestBody: $ref: "#/components/requestBodies/CobBodyRevisada" responses: "200": description: "Cobrança imediata revisada. A revisão deve ser incrementada em 1." content: "application/json": schema: $ref: "#/components/schemas/CobGerada" examples: retorno1: $ref: "#/components/examples/cobResponse3" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/OperacaoInvalidaCobExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - name: "revisao" in: "query" required: false schema: $ref: "#/components/schemas/Revisao" tags: - "Cob" summary: "Consultar cobrança imediata." security: - OAuth2: [cob.read] description: |- Endpoint para consultar uma cobrança através de um determinado txid. responses: "200": description: "Dados da cobrança imediata." content: "application/json": schema: $ref: "#/components/schemas/CobCompleta" examples: retorno1: $ref: "#/components/examples/cobResponse1" retorno2: $ref: "#/components/examples/cobResponse2" retorno3: $ref: "#/components/examples/cobResponse5" retorno4: $ref: "#/components/examples/cobResponse6" retorno5: $ref: "#/components/examples/cobResponse7" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cob": post: tags: - "Cob" summary: "Criar cobrança imediata." security: - OAuth2: [cob.write] description: |- Endpoint para criar uma cobrança imediata, neste caso, o txid deve ser definido pelo PSP. requestBody: $ref: "#/components/requestBodies/CobBody" responses: "201": description: "Cobrança imediata criada" content: "application/json": schema: $ref: "#/components/schemas/CobGerada" examples: retorno1: $ref: "#/components/examples/cobResponse1" retorno2: $ref: "#/components/examples/cobResponse5" retorno3: $ref: "#/components/examples/cobResponse6" retorno4: $ref: "#/components/examples/cobResponse7" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobExample1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "cpf" in: "query" schema: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." - name: "cnpj" in: "query" schema: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." - name: "locationPresente" in: "query" schema: type: "boolean" - name: "status" in: "query" schema: type: "string" title: "Status do registro da cobrança" description: "Filtro pelo status da cobrança." - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "Cob" summary: "Consultar lista de cobranças imediatas." security: - OAuth2: [cob.read] description: |- Endpoint para consultar cobranças imediatas através de parâmetros como início, fim, cpf, cnpj e status. responses: "200": description: "Lista de cobranças imediatas." content: "application/json": schema: $ref: "#/components/schemas/CobsConsultadas" examples: getCobs1: $ref: "#/components/examples/getCobs1" getCobs2: $ref: "#/components/examples/getCobs2" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobv/{txid}": parameters: - name: "txid" in: "path" required: true schema: $ref: "#/components/schemas/TxId" put: tags: - "CobV" summary: "Criar cobrança com vencimento." security: - OAuth2: [cobv.write] description: |- Endpoint para criar uma cobrança com vencimento. requestBody: $ref: "#/components/requestBodies/CobVBody" responses: "201": description: "Cobrança com vencimento criada" content: "application/json": schema: $ref: "#/components/schemas/CobVGerada" examples: retorno1: $ref: "#/components/examples/cobResponse4" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobVExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "CobV" summary: "Revisar cobrança com vencimento." security: - OAuth2: [cobv.write] requestBody: $ref: "#/components/requestBodies/CobVBodyRevisada" responses: "200": description: "Cobrança com vencimento revisada. A revisão deve ser incrementada em 1." content: "application/json": schema: $ref: "#/components/schemas/CobVGerada" examples: retorno1: $ref: "#/components/examples/cobResponse4" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/OperacaoInvalidaCobVExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - name: "revisao" in: "query" required: false schema: $ref: "#/components/schemas/Revisao" tags: - "CobV" summary: "Consultar cobrança com vencimento." security: - OAuth2: [cobv.read] description: |- Endpoint para consultar uma cobrança com vencimento através de um determinado txid. responses: "200": description: "Dados da cobrança com vencimento." content: "application/json": schema: $ref: "#/components/schemas/CobVCompleta" examples: retorno1: $ref: "#/components/examples/cobResponse4" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobv": get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "cpf" in: "query" schema: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." - name: "cnpj" in: "query" schema: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." - name: "locationPresente" in: "query" schema: type: "boolean" - name: "status" in: "query" schema: type: "string" title: "Status do registro da cobrança" description: "Filtro pelo status da cobrança." - name: "loteCobVId" in: "query" schema: type: "integer" format: "int32" title: "Id do lote de cobrança com vencimento" description: "Id do lote de cobrança com vencimento." - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "CobV" summary: "Consultar lista de cobranças com vencimento." security: - OAuth2: [cobv.read] description: |- Endpoint para consultar cobranças com vencimento através de parâmetros como início, fim, cpf, cnpj e status. responses: "200": description: "Lista de cobranças com vencimento." content: "application/json": schema: $ref: "#/components/schemas/CobsVConsultadas" examples: getCobs1: $ref: "#/components/examples/getCobsV1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/lotecobv/{id}": parameters: - name: "id" in: "path" required: true schema: type: "string" title: "Identificador do lote de cobranças com vencimento, em formato de texto." put: tags: - "LoteCobV" summary: "Criar/Alterar lote de cobranças com vencimento." security: - OAuth2: [lotecobv.write] description: |- Endpoint utilizado para criar ou alterar um lote de cobranças com vencimento. Para o caso de uso de alteração de cobranças, o array a ser atribuído na requisicão deve ser composto pelas exatas requisições de criação de cobranças que constaram no array atribuído na requisição originária. Não se pode utilizar este endpoint para _alterar_ um lote de cobranças com vencimento agregando ou removendo cobranças já existentes dentro do conjunto de cobranças criadas na requisição originária do lote. Em outras palavras, se originalmente criou-se um lote, por exemplo, com as cobranças [`a`, `b` e `c`], não se pode _alterar_ esse conjunto de cobranças original que o lote representa para [`a`, `b`, `c`, `d`], ou para [`a`, `b`]. Por outro lado, pode-se alterar, _em lote_ as cobranças [`a`, `b`, `c`], conforme originalmente constam na requisição originária do lote. Uma solicitação de __criação__ de cobrança com status "EM_PROCESSAMENTO" ou "NEGADA" está associada a uma cobrança não _existe_ de fato, portanto não será listada em `GET /cobv` ou `GET /cobv/{txid}`. Uma cobrança, uma vez criada via `PUT /cobv/{txid}`, não pode ser associada a um lote posteriormente. Uma cobrança, uma vez criada via `PUT /lotecobv/{id}`, não pode ser associada a um novo lote posteriormente. requestBody: $ref: "#/components/requestBodies/LoteCobVBody" responses: "202": description: "Lote de cobranças com vencimento solicitado para criação." "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaLoteCobVExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "LoteCobV" summary: "Utilizado para revisar cobranças específicas dentro de um lote de cobranças com vencimento." security: - OAuth2: [lotecobv.write] description: |- Endpoint utilizado para revisar cobranças específicas dentro de um lote de cobranças com vencimento. A diferença deste endpoint para o endpoint PUT correlato é que este endpoint admite um array `cobsv` com menos solicitações de criação ou alteração de cobranças do que o array atribuído na requisição originária do lote. Não se pode, entretanto, utilizar esse endpoint para agregar ou remover solicitações de alteração ou criação de cobranças conforme constam na requisição originária do lote. requestBody: $ref: "#/components/requestBodies/LoteCobVBodyRevisado" responses: "202": description: "Solicitação de revisão do Lote de cobranças encaminhada para processamento." "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/OperacaoInvalidaCobVExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: tags: - "LoteCobV" summary: "Consultar um lote específico de cobranças com vencimento." security: - OAuth2: [lotecobv.read] description: |- Endpoint para consultar um lote de cobranças com vencimento. responses: "200": description: "Lote de cobranças com vencimento." content: "application/json": schema: $ref: "#/components/schemas/LoteCobVConsultado" examples: exemplo1: $ref: "#/components/examples/loteCobVResponse1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/lotecobv": get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "LoteCobV" summary: "Consultar lotes de cobranças com vencimento." security: - OAuth2: [lotecobv.read] description: |- Endpoint para consultar lista de lotes de cobranças com vencimento. responses: "200": description: "Lotes de cobranças com vencimento." content: "application/json": schema: $ref: "#/components/schemas/LotesCobVConsultados" examples: exemplo1: $ref: "#/components/examples/getLotesCobsV" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/locrec": post: tags: - "PayloadLocationRec" summary: "Criar location do payload." security: - OAuth2: [payloadlocationrec.write] description: |- Criar location do payload responses: "201": description: "Dados da location do Payload." headers: location: schema: type: "string" format: "uri" title: "Identificador da location criada." description: "Identificador da location criada." example: "pix.example.com/api/loc/1234567" content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationRecGerada" examples: response1: $ref: "#/components/examples/payloadLocationRecResponse2" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "idRecPresente" in: "query" schema: type: "boolean" - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "PayloadLocationRec" summary: "Consultar locations cadastradas." security: - OAuth2: [payloadlocationrec.read] description: "Endpoint para consultar locations cadastradas" responses: "200": description: "lista dos locations cadastrados de acordo com o critério de busca." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationRecConsultadas" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/locrec/{id}": parameters: - name: "id" in: "path" required: true schema: type: "string" title: "Id da location cadastrada para servir um payload" get: tags: - "PayloadLocationRec" summary: "Recuperar location do payload." security: - OAuth2: [payloadlocationrec.read] description: |- Recupera a location do payload responses: "200": description: "Dados da location do Payload." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationRecCompleta" examples: response1: $ref: "#/components/examples/payloadLocationRecResponse1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/locrec/{id}/idRec": parameters: - name: "id" in: "path" required: true schema: type: "string" title: "Id da location cadastrada para servir um payload" delete: tags: - PayloadLocationRec summary: "Desvincular uma recorrência de uma location." description: | Endpoint utilizado para desvincular uma recorrência de uma location. Se executado com sucesso, a entidade `loc` não apresentará mais uma recorrência, se apresentava anteriormente à chamada. Adicionalmente, a entidade associada ao recurso desvinculado também passará a não mais apresentar um _location_. Esta operação não altera o `status` do recurso em questão. security: - OAuth2: [payloadlocationrec.write] responses: "200": description: "Entidade representada pelo recurso informado desvinculada com sucesso." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocation" examples: response1: $ref: "#/components/examples/payloadLocationRecResponse2" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/loc": post: tags: - "PayloadLocation" summary: "Criar location do payload." security: - OAuth2: [payloadlocation.write] description: |- Criar location do payload requestBody: $ref: "#/components/requestBodies/PayloadLocationBody" responses: "201": description: "Dados da location do Payload." headers: location: schema: type: "string" format: "uri" title: "Identificador da location criada." description: "Identificador da location criada." example: "pix.example.com/api/loc/1234567" content: "application/json": schema: $ref: "#/components/schemas/PayloadLocation" examples: getPayloadLocation1: $ref: "#/components/examples/payloadLocationResponse5" getPayloadLocation2: $ref: "#/components/examples/payloadLocationResponse6" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaLocationExample1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "txIdPresente" in: "query" schema: type: "boolean" - name: "tipoCob" in: "query" schema: type: "string" enum: - "cob" - "cobv" - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "PayloadLocation" summary: "Consultar locations cadastradas." security: - OAuth2: [payloadlocation.read] description: "Endpoint para consultar locations cadastradas" responses: "200": description: "lista dos locations cadastrados de acordo com o critério de busca." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationConsultadas" examples: getCobs1: $ref: "#/components/examples/getPayloadLocation1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/loc/{id}": parameters: - name: "id" in: "path" required: true schema: type: "string" title: "Id da location cadastrada para servir um payload" get: tags: - "PayloadLocation" summary: "Recuperar location do payload." security: - OAuth2: [payloadlocation.read] description: |- Recupera a location do payload responses: "200": description: "Dados da location do Payload." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationCompleta" examples: getPayloadLocation1: $ref: "#/components/examples/payloadLocationResponse1" getPayloadLocation2: $ref: "#/components/examples/payloadLocationResponse2" getPayloadLocation3: $ref: "#/components/examples/payloadLocationResponse3" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/loc/{id}/txid": parameters: - name: "id" in: "path" required: true schema: type: "string" title: "Id da location cadastrada para servir um payload" delete: tags: - PayloadLocation summary: "Desvincular uma cobrança de uma location." description: | Endpoint utilizado para desvincular uma cobrança de uma location. Se executado com sucesso, a entidade `loc` não apresentará mais um txid, se apresentava anteriormente à chamada. Adicionalmente, a entidade `cob` ou `cobv` associada ao txid desvinculado também passará a não mais apresentar um _location_. Esta operação não altera o `status` da `cob` ou `cobv` em questão. security: - OAuth2: [payloadlocation.write] responses: "200": description: "cobrança representada pelo txid informado desvinculada com sucesso." content: "application/json": schema: $ref: "#/components/schemas/PayloadLocation" examples: getPayloadLocation1: $ref: "#/components/examples/payloadLocationResponse4" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/pix/{e2eid}": parameters: - name: "e2eid" in: "path" required: true schema: $ref: "#/components/schemas/EndToEndId" get: tags: - "Pix" summary: "Consultar Pix." security: - OAuth2: [pix.read] description: "Endpoint para consultar um Pix através de um e2eid." responses: "200": description: "Dados do Pix efetuado." content: "application/json": schema: $ref: "#/components/schemas/Pix" examples: retorno1: $ref: "#/components/examples/pixResponse1" retorno2: $ref: "#/components/examples/pixResponse2" retorno3: $ref: "#/components/examples/pixResponse3" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/pix": get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "txid" in: "query" schema: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{1,35}" - name: "txIdPresente" in: "query" schema: type: "boolean" - name: "devolucaoPresente" in: "query" schema: type: "boolean" - name: "cpf" in: "query" schema: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do pagador. Não pode ser utilizado ao mesmo tempo que o CNPJ." - name: "cnpj" in: "query" schema: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do pagador. Não pode ser utilizado ao mesmo tempo que o CPF." - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "Pix" summary: "Consultar Pix recebidos." security: - OAuth2: [pix.read] description: "Endpoint para consultar Pix recebidos" responses: "200": description: "lista dos Pix recebidos de acordo com o critério de busca." content: "application/json": schema: $ref: "#/components/schemas/PixConsultados" examples: getCobs1: $ref: "#/components/examples/getPix1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/pix/{e2eid}/devolucao/{id}": parameters: - name: "e2eid" in: "path" required: true schema: $ref: "#/components/schemas/EndToEndId" - name: "id" in: "path" required: true schema: $ref: "#/components/schemas/DevolucaoId" put: tags: - "Pix" summary: "Solicitar devolução." security: - OAuth2: [pix.write] description: | Endpoint para solicitar uma devolução através de um e2eid do Pix e do ID da devolução. O motivo que será atribuído à PACS.004 será "MD06" ou "SL02" de acordo com a aba RTReason da PACS.004 que consta no Catálogo de Mensagens do Pix a depender da `natureza` da devolução (Vide a descrição deste campo). requestBody: $ref: "#/components/requestBodies/DevolucaoBody" responses: "201": description: "Dados da devolução." content: "application/json": schema: $ref: "#/components/schemas/Devolucao" examples: retorno1: $ref: "#/components/examples/devolucaoResponse1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaDevolucaoExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: tags: - "Pix" summary: "Consultar devolução." security: - OAuth2: [pix.read] description: "Endpoint para consultar uma devolução através de um End To End ID do Pix e do ID da devolução" responses: "200": description: "Dados da devolução." content: "application/json": schema: $ref: "#/components/schemas/Devolucao" examples: retorno1: $ref: "#/components/examples/devolucaoResponse1" retorno2: $ref: "#/components/examples/devolucaoResponse2" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/{pixUrlAccessToken}": parameters: - name: "pixUrlAccessToken" in: "path" required: true schema: type: "string" get: tags: - "CobPayload" servers: - url: https://{fdqnPSPRecebedor}/{endpointOpcional} variables: fdqnPSPRecebedor: default: example.com description: Endpoint base para que os usuários devedores possam acessar o payload JSON que representa a cobrança imediata. summary: "Recuperar o payload JSON que representa a cobrança imediata." description: | ## Endpoint (location) que serve um payload que representa uma cobrança imediata. No momento que o usuário devedor efetua a leitura de um QR Code dinâmico gerado pelo recebedor, esta URL será acessada e seu conteúdo consiste em uma estrutura JWS. As informações sobre a segurança no acesso às urls encontram-se no Manual de Segurança do Pix disponível em nesse __[link](https://www.bcb.gov.br/estabilidadefinanceira/comunicacaodados)__. security: [] responses: "200": description: | # Descrição do Retorno O retorno desse endpoint é um objeto que apresenta estrutura JWS, conforme especificado no manual de segurança. Segue um exemplo: ```jws eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXUyIsImtpZCI6IjIwMTEtMDQtMjkiLCJqa3UiOiJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzUxNyIsIng1dCI6IkFwcGVuZGl4QUV4YW1wbGVBMUpXS1NSc2FLZXkifQ.eyJjYWxlbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIwLTA0LTAxVDE4OjAwOjAwWiIsImV4cGlyYWNhbyI6IjM2MDAifSwidHhpZCI6ImZjOWE0MzY2ZmYzZDQ5NjRiNWRiYzZjOTFhODcyMmQzIiwicmV2aXNhbyI6IjMiLCJzdGF0dXMiOiJBVElWQSIsInZhbG9yIjp7Im9yaWdpbmFsIjoiNTAwLjAwIn0sImNoYXZlIjoiNzQwN2M5YzgtZjc4Yi0xMWVhLWFkYzEtMDI0MmFjMTIwMDAyIiwic29saWNpdGFjYW9QYWdhZG9yIjoiSW5mb3JtYXIgY2FydGFvIGZpZGVsaWRhZGUiLCJpbmZvQWRpY2lvbmFpcyI6W3sibm9tZSI6InF1YW50aWRhZGUiLCJ2YWxvciI6IjIifV19.qI7NUrYkwcgXmyoyOjt2YLQyhxH-lPdr3xQ7RId9TDXZ-MlWmPJkUScjuo1Nz_EvlSotbWDGOxErBXHeTLHOQM-9T7lBmG5iw6uEX7L5U72XiganIm80EZCFD1vBPq9j89i4cP2U2Yv21TTt8JLhjA57KHLOSlj-KB5UAKCH-MX3AORFcrXFrYL2rrSQDe-lFNtdyPRwLQHIrhkQ6RR2FPhynzUG0401LScS9mWLLYbYzhzwtP5lk07Ryf4MZq86ihmOLFZXkIiW7pbSd8QfD5Dvj28XebLQi_bam9wInqKB--57_N741BskCN_TXf0EHbQ1qjNTgiT8Y1GIrA4pFA ``` Este objeto JWS assinado deve ser validado pelo devedor. Maiores detalhes técnicos a respeito da especificação de segurança encontram-se no __[Manual de Segurança do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix)__. Conforme pode-se verificar no exemplo acima, o objeto JWS apresenta três fragmentos separados pelo caractere `.` (ponto). São eles: `header`, `payload` e `signature`. Em termos de funcionalidade, o fragmento que interessa ao devedor é o `payload`, que apresenta estrutura conforme especificada pelo `schema` do presente endpoint, contendo detalhes concernentes à cobrança. content: "application/jose": schema: $ref: "#/components/schemas/CobPayload" examples: retorno1: $ref: "#/components/examples/cobPayload1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobPayloadExample1" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobv/{pixUrlAccessToken}": parameters: - name: "pixUrlAccessToken" in: "path" required: true schema: type: "string" - name: "codMun" in: "query" description: | Código baseado na Tabela de Códigos de Municípios do __[IBGE](https://www.ibge.gov.br/explica/codigos-dos-municipios.php)__ que apresenta a lista dos municípios brasileiros associados a um código composto de 7 dígitos, sendo os dois primeiros referentes ao código da Unidade da Federação. schema: type: "string" pattern: "/^\\d{7}$/" title: "Código do município" - name: "DPP" in: "query" description: "Data de pagamento pretendida. Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601." schema: type: "string" format: "date" example: "2021-04-01" get: tags: - "CobPayload" servers: - url: https://{fdqnPSPRecebedor}/{endpointOpcional} variables: fdqnPSPRecebedor: default: example.com description: Endpoint base para que os usuários devedores possam acessar o payload JSON que representa a cobrança com vencimento. summary: "Recuperar o payload JSON que representa a cobrança com vencimento." description: | ## Endpoint (location) que serve um payload que representa uma cobrança com vencimento. No momento que o usuário devedor efetua a leitura de um QR Code dinâmico gerado pelo recebedor, esta URL será acessada e seu conteúdo consiste em uma estrutura JWS. As informações sobre a segurança no acesso às urls encontram-se no Manual de Segurança do Pix disponível em nesse __[link](https://www.bcb.gov.br/estabilidadefinanceira/comunicacaodados)__. security: [] responses: "200": description: | # Descrição do Retorno O retorno desse endpoint é um objeto que apresenta estrutura JWS, conforme especificado no manual de segurança. Segue um exemplo: ```jws eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXUyIsImtpZCI6IjIwMTEtMDQtMjkiLCJqa3UiOiJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzUxNyIsIng1dCI6IkFwcGVuZGl4QUV4YW1wbGVBMUpXS1NSc2FLZXkifQ.eyJjYWxlbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIwLTA0LTAxVDE4OjAwOjAwWiIsImRhdGFEZVZlbmNpbWVudG8iOiIyMDIwLTEyLTMxIiwidmFsaWRhZGVBcG9zVmVuY2ltZW50byI6MzB9LCJkZXZlZG9yIjp7ImxvZ3JhZG91cm8iOiJBbGFtZWRhIFNhbnRvcywgTnVtZXJvIDEwLCBCYWlycm8gQnJheiIsImNpZGFkZSI6IkRpYWRlbWEiLCJ1ZiI6IlNQIiwiY2VwIjoiNzA4MDAxMDAiLCJjbnBqIjoiNTY5ODkwMDAwMTk1MzMiLCJub21lIjoiRW1wcmVzYSBkZSBBbGltZW50b3MgU0EifSwicmVjZWJlZG9yIjp7ImxvZ3JhZG91cm8iOiJSdWEgMjAgTnVtZXJvIDcwLCBCYWlycm8gTHV6IiwiY2lkYWRlIjoiQmVsbyBIb3Jpem9udGUiLCJ1ZiI6Ik1HIiwiY2VwIjoiNTUxMjA3NTAiLCJjbnBqIjoiNTg5MDA2MzMxMjA3MTEiLCJub21lIjoiRW1wcmVzYSBkZSBBYmFzdGVjaW1lbnRvIFNBIn0sInR4aWQiOiJmYzlhNDM2NmZmM2Q0OTY0YjVkYmM2YzkxYTg3MjJkMyIsInJldmlzYW8iOiIzIiwic3RhdHVzIjoiQVRJVkEiLCJ2YWxvciI6eyJvcmlnaW5hbCI6IjEyMy40NSIsIm11bHRhIjoiMTUuMDAiLCJqdXJvcyI6IjIuMDAiLCJmaW5hbCI6IjE0MCw0NSJ9LCJjaGF2ZSI6Ijc0MDdjOWM4LWY3OGItMTFlYS1hZGMxLTAyNDJhYzEyMDAwMiIsInNvbGljaXRhY2FvUGFnYWRvciI6IkluZm9ybWFyIGNhcnRhbyBmaWRlbGlkYWRlIiwiaW5mb0FkaWNpb25haXMiOlt7Im5vbWUiOiJxdWFudGlkYWRlIiwidmFsb3IiOiIyIn1dfQ.BYibf_oK38IubbnnfThe4gaXuJgfoGQzFIezxHS76jGLQ4re2BwSdsiIzBW1t0JOtL094jLtJMVttdIdF9YJukrdzbknbf1jzfHghgBfNqXfZm7jxWuV8IO0jimoSoo7oMrG3MYytRFpdk2Q_ZhTL5UgZqVbfJkMwcp8o0FYmzrmiGPll-kgBulTgGgvGjzl-mC5dtl56351ix1-If1D7KAohHzcYTHzEFkvYZlNCcxyHJX94-8IqpYaTQ1rJlnPExPIgys-ioZ3U_QzcPz4d3tGvRAfHEU7VoIeZHeXR1jqKuqvz70ayc8mAbL7RXzJat1Ru_glS3krkSdXdZxK-w ``` Este objeto JWS assinado deve ser validado pelo devedor. Maiores detalhes técnicos a respeito da especificação de segurança encontram-se no __[Manual de Segurança do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix)__. Conforme pode-se verificar no exemplo acima, o objeto JWS apresenta três fragmentos separados pelo caractere `.` (ponto). São eles: `header`, `payload` e `signature`. Em termos de funcionalidade, o fragmento que interessa ao devedor é o `payload`, que apresenta estrutura conforme especificada pelo `schema` do presente endpoint, contendo detalhes concernentes à cobrança. content: "application/jose": schema: $ref: "#/components/schemas/CobVPayload" examples: retorno1: $ref: "#/components/examples/cobPayload2" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobPayloadExample1" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/rec/{recUrlAccessToken}": parameters: - name: "recUrlAccessToken" in: "path" required: true schema: type: "string" get: tags: - "RecPayload" servers: - url: https://{fdqnPSPRecebedor}/{endpointOpcional} variables: fdqnPSPRecebedor: default: example.com description: Endpoint base para que os usuários devedores possam acessar o payload JSON que representa a recorrência. summary: "Recuperar o payload JSON que representa a configuração da recorrência." description: | ## Endpoint (location) que serve um payload que representa uma recorrência. No momento em que o usuário pagador efetua a leitura de um QR Code composto gerado pelo recebedor, esta URL será acessada e seu conteúdo consiste em uma estrutura JWS. As informações sobre a segurança no acesso às urls encontram-se no Manual de Segurança do Pix disponível nesse __[link](https://www.bcb.gov.br/estabilidadefinanceira/comunicacaodados)__. security: [] responses: "200": description: | # Descrição do Retorno O retorno desse endpoint é um objeto que apresenta estrutura JWS, conforme especificado no manual de segurança. Segue um exemplo: ```jws eyJ4NXQjUzI1NiI6IkJOVkdUamZsRTVBaUplWGhHbTZSaGtGUXkwQ25pejJXSlF5cTZhQ0pnTFkiLCJqa3UiOiJodHRwczpcL1wvcXItaC5zYW5kYm94LnBpeC5iY2IuZ292LmJyXC9yZXN0XC9qd2tzLmpzb24iLCJraWQiOiJOMjROSVg5R3Z3bm4ycGktV09IOG9RQ2JkSGlaSFdpbnJvWllxZGhxMlYwUENJIiwiYWxnIjoiUlMyNTYifQ.eyJpZFJlYyI6IlJOMTIzNDU2NzgyMDI0MDExNTc3ODI1NDQ1NjEyIiwidmluY3VsbyI6eyJjb250cmF0byI6IjU1ODI2MTAiLCJkZXZlZG9yIjp7ImNwZiI6IjQ1MTY0NjMyNDgxIiwibm9tZSI6IkZ1bGFubyBkZSBUYWwifSwib2JqZXRvIjoiU2VydmnDp28gZGUgU3RyZWFtbWluZyBkZSBNw7pzaWNhLiJ9LCJjYWxlbmRhcmlvIjp7ImRhdGFGaW5hbCI6IjIwMjUtMDQtMDEiLCJkYXRhSW5pY2lhbCI6IjIwMjQtMDQtMDEiLCJwZXJpZGlvY2lkYWRlIjoiTUVOU0FMIn0sInBvbGl0aWNhUmV0ZW50YXRpdmEiOiJOQU9fUEVSTUlURSIsInZhbG9yIjp7InZhbG9yUmVjIjoiMzUuMDAifSwicmVjZWJlZG9yIjp7ImNucGoiOiIyODc2NTAwNzgwMjM3MSIsIm5vbWUiOiJTdGFydHVwIE11c2ljYWwiLCJpc3BiUGFydGljaXBhbnRlIjoiMTIzNDU2NzgifSwiYXR1YWxpemFjYW8iOlt7InN0YXR1cyI6IkNSSUFEQSIsImRhdGEiOiIyMDI0LTAzLTIwVDEwOjEyOjA3LjU2N1oifV19.JQ3nwpN75M7ADuFQD1lAYRU_3QIkU34OCGXcqmn0dmmvl_JYQggZDY-2cN9waqZtf0duJkDs9EcRu-pNZQZlNMjI7DCYCNfXOgiiofdQqMikDh-D6Zq82EkiUqS7cuTg1-GWylCTF9gH6-p_D-dhYPvf-s4FinbjZNwhkX8Sn-OhlLMS8roIWSMjo_J1hN4DdL-Q5zgZBb7Hbt4OZ3CnD1GNbnsdUUyPyy2GfmIUWZEnQ2rY7gVuI7chUAksYeZVaJiH34saBw4Ou8RjHbSGmeWFLmjiTSQYisyQEyotStu6GnHLS36ElNDVlZWOUnb87N3H5FAccWaIQhit3C4wmA ``` Este objeto JWS assinado deve ser validado pelo pagador. Maiores detalhes técnicos a respeito da especificação de segurança encontram-se no __[Manual de Segurança do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix)__. Conforme pode-se verificar no exemplo acima, o objeto JWS apresenta três fragmentos separados pelo caractere `.` (ponto). São eles: `header`, `payload` e `signature`. Em termos de funcionalidade, o fragmento que interessa ao pagador é o `payload`, que apresenta estrutura conforme especificada pelo `schema` do presente endpoint, contendo detalhes concernentes à recorrência. content: "application/jose": schema: $ref: "#/components/schemas/RecPayload" examples: response1: $ref: "#/components/examples/recPayload1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaRecPayloadExample1" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/webhook/{chave}": parameters: - name: "chave" in: "path" required: true schema: type: "string" title: "Chave DICT do recebedor" maxLength: 77 put: tags: - Webhook summary: Configurar o Webhook Pix. description: | Endpoint para configuração do serviço de notificações acerca de Pix recebidos. Somente Pix associados a um txid serão notificados. security: - OAuth2: [webhook.write] requestBody: $ref: "#/components/requestBodies/WebhookConfigBody" responses: "200": description: Webhook para notificações acerca de Pix recebidos associados a um txid. "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaWebhookExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" callbacks: listaPix: "{$request.body#/webhookUrl}/pix": post: description: | O callback deve ser acionado sempre que um ou mais Pix associados a um txid forem recebidos pelo usuário recebedor e desde que a chave associada ao Pix em questão esteja associada a um webhook cadastrado. O callback também deve ser acionado sempre que uma devolução associada a um Pix associado a um txid atinja um status final: `DEVOLVIDO` ou `NAO_REALIZADO`. O SLA específico a ser definido no contexto dos acionamento dos callbacks fica a cargo de cada PSP recebedor. Orienta-se, no entanto, que o SLA seja definido dentro de um limite razoável tendo em vista que a expectativa é que o callback seja um aviso "on-line" da ocorrência do pagamento. No contexto da estratégia específica de SLA de cada PSP recebedor, é possível agrupar Pix associados a uma mesma chave para economizar acionamentos múltiplos. Este serviço está protegido por uma camada de autenticação mTLS. Para maiores detalhes, verificar o [Manual de padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). security: [] requestBody: $ref: "#/components/requestBodies/WebhookPixBody" responses: "200": description: "Notificação recebida com sucesso" get: tags: - Webhook summary: "Exibir informações acerca do Webhook Pix." description: | Endpoint para recuperação de informações sobre o Webhook Pix. security: - OAuth2: [webhook.read] responses: "200": description: "Dados do webhook." content: "application/json": schema: $ref: "#/components/schemas/WebhookCompleto" examples: exemplo1: $ref: "#/components/examples/webhookResponse1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" delete: tags: - Webhook summary: "Cancelar o webhook Pix." description: | Endpoint para cancelamento do webhook. Não é a única forma pela qual um webhook pode ser removido. O PSP recebedor está livre para remover unilateralmente um webhook que esteja associado a uma chave que não pertence mais a este usuário recebedor. security: - OAuth2: [webhook.write] responses: "204": description: "Webhook para notificações Pix foi cancelado." "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/webhook": get: parameters: - in: "query" name: "inicio" required: false schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: false schema: $ref: "#/components/schemas/Fim" - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "Webhook" summary: "Consultar webhooks cadastrados." security: - OAuth2: [webhook.read] description: "Endpoint para consultar Webhooks cadastrados" responses: "200": description: "lista dos locations cadastrados de acordo com o critério de busca." content: "application/json": schema: $ref: "#/components/schemas/WebhooksConsultados" examples: getCobs1: $ref: "#/components/examples/getWebhook1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/webhookrec": put: tags: - WebhookRec summary: Configurar Webhook. description: | Endpoint para configuração do serviço de notificações acerca de recorrências. Somente recorrências associadas a chave e conta serão notificadas. security: - OAuth2: [webhookrec.write] requestBody: $ref: "#/components/requestBodies/WebhookRecConfigBody" responses: "200": description: Webhook para notificações. "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaWebhookExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" callbacks: rec: "{$request.body#/webhookUrl}/rec": post: description: "" security: [] requestBody: $ref: "#/components/requestBodies/WebhookRecBody" responses: "200": description: "Notificação recebida com sucesso" get: tags: - WebhookRec summary: "Exibir informações acerca do Webhook." description: | Endpoint para recuperação de informações sobre o Webhook. security: - OAuth2: [webhookrec.read] responses: "200": description: "Dados do webhook." content: "application/json": schema: $ref: "#/components/schemas/WebhookRecCompleto" examples: response1: $ref: "#/components/examples/recWebhookResponse1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" delete: tags: - WebhookRec summary: "Cancelar o Webhook." description: | Endpoint para cancelamento do webhook. Não é a única forma pela qual um webhook pode ser removido. security: - OAuth2: [webhookrec.write] responses: "204": description: "Webhook para notificações foi cancelado." "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/webhookcobr": put: tags: - WebhookCobR summary: Configurar Webhook. description: | Endpoint para configuração do serviço de notificações acerca de cobranças recorrentes. Somente cobranças recorrentes associadas ao usuário recebedor serão notificadas. security: - OAuth2: [webhookcobr.write] requestBody: $ref: "#/components/requestBodies/WebhookCobRConfigBody" responses: "200": description: Webhook para notificações. "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaWebhookExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" callbacks: cobr: "{$request.body#/webhookUrl}/cobr": post: description: "" security: [] requestBody: $ref: "#/components/requestBodies/WebhookCobRBody" responses: "200": description: "Notificação recebida com sucesso" get: tags: - WebhookCobR summary: "Exibir informações acerca do Webhook." description: | Endpoint para recuperação de informações sobre o Webhook. security: - OAuth2: [webhookcobr.read] responses: "200": description: "Dados do webhook." content: "application/json": schema: $ref: "#/components/schemas/WebhookCobRCompleto" examples: response1: $ref: "#/components/examples/cobRWebhookResponse1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" delete: tags: - WebhookCobR summary: "Cancelar o Webhook." description: | Endpoint para cancelamento do webhook. Não é a única forma pela qual um webhook pode ser removido. security: - OAuth2: [webhookcobr.write] responses: "204": description: "Webhook para notificações foi cancelado." "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/rec/{idRec}": parameters: - name: "idRec" in: "path" required: true schema: type: "string" title: "Id da location cadastrada para servir um payload" get: tags: - "Rec" parameters: - name: "txid" in: "query" required: false schema: type: "string" title: "TxId da cobrança associada a recorrência." summary: "Consultar recorrência." security: - OAuth2: [rec.read] description: "Consultar recorrência." responses: "200": description: "Dados da recorrência." content: "application/json": schema: $ref: "#/components/schemas/RecCompleta" examples: response1: $ref: "#/components/examples/recResponse3" response2: $ref: "#/components/examples/recResponse4" response3: $ref: "#/components/examples/recResponse5" response4: $ref: "#/components/examples/recResponse6" response5: $ref: "#/components/examples/recResponse7" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "Rec" summary: "Revisar recorrência." security: - OAuth2: [rec.write] description: "Revisar recorrência." requestBody: $ref: "#/components/requestBodies/RecBodyRevisada" responses: "200": description: "Recorrência revisada." content: "application/json": schema: $ref: "#/components/schemas/RecGerada" examples: retorno1: $ref: "#/components/examples/recResponse1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaRecExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/rec": get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "cpf" in: "query" schema: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." - name: "cnpj" in: "query" schema: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." - name: "locationPresente" in: "query" schema: type: "boolean" - name: "status" in: "query" schema: type: "string" title: "Status do registro da recorrência" description: "Filtro pelo status da recorrência." - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "Rec" summary: "Consultar lista de recorrências." security: - OAuth2: [rec.read] description: "Consultar lista de recorrências." responses: "200": description: "OK" content: "application/json": schema: $ref: "#/components/schemas/RecsConsultadas" examples: retorno1: $ref: "#/components/examples/getRec1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" post: tags: - "Rec" summary: "Criar recorrência." security: - OAuth2: [rec.write] description: "Criar recorrência" requestBody: $ref: "#/components/requestBodies/RecBody" responses: "201": description: "Recorrência criada" content: "application/json": schema: $ref: "#/components/schemas/RecGerada" examples: retorno1: $ref: "#/components/examples/recResponse1" retorno2: $ref: "#/components/examples/recResponse2" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaRecExample1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/solicrec": post: tags: - "SolicRec" summary: "Criar solicitação de confirmação de recorrência." security: - OAuth2: [solicrec.write] description: "Criar solicitação de confirmação de recorrência." requestBody: $ref: "#/components/requestBodies/SolicRecBody" responses: "201": description: "Solicitação de recorrência criada" content: "application/json": schema: $ref: "#/components/schemas/SolicRecCompleta" examples: response1: $ref: "#/components/examples/solicRecResponse1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaSolicRecExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/solicrec/{idSolicRec}": parameters: - name: "idSolicRec" in: "path" required: true schema: type: "string" title: "Id da solicitação da recorrência" get: tags: - "SolicRec" summary: "Consultar solicitação de confirmação de recorrência." security: - OAuth2: [solicrec.read] description: "Consultar solicitação." responses: "200": description: "Dados da solicitação da recorrência." content: "application/json": schema: $ref: "#/components/schemas/SolicRecCompleta" examples: response1: $ref: "#/components/examples/solicRecResponse1" response2: $ref: "#/components/examples/solicRecResponse2" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "SolicRec" summary: "Revisar solicitação de confirmação de recorrência." security: - OAuth2: [solicrec.write] description: "Revisar solicitação de confirmação de recorrência." requestBody: $ref: "#/components/requestBodies/SolicRecBodyRevisada" responses: "201": description: "Solicitação de recorrência atualizada" content: "application/json": schema: $ref: "#/components/schemas/SolicRecCompleta" examples: response1: $ref: "#/components/examples/solicRecResponse3" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaSolicRecExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobr/{txid}": parameters: - name: txid in: path required: true schema: $ref: "#/components/schemas/TxId" put: tags: - "CobR" summary: "Criar cobrança recorrente." security: - OAuth2: [cobr.write] description: |- Endpoint para criar uma cobrança recorrente. requestBody: $ref: "#/components/requestBodies/CobRBody" responses: "201": description: "Cobrança imediata recorrente." content: "application/json": schema: $ref: "#/components/schemas/CobRGerada" examples: response1: $ref: "#/components/examples/cobRResponse2" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaCobRExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" patch: tags: - "CobR" summary: "Revisar cobrança recorrente." security: - OAuth2: [cobr.write] requestBody: $ref: "#/components/requestBodies/CobRBodyRevisada" responses: "200": description: "Cobrança recorrente revisada." content: "application/json": schema: $ref: "#/components/schemas/CobRGerada" examples: response1: $ref: "#/components/examples/cobRResponse4" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/OperacaoInvalidaCobRExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: tags: - "CobR" summary: "Consultar cobrança recorrente." security: - OAuth2: [cobr.read] description: |- Endpoint para consultar uma cobrança recorrente através de um determinado txid. responses: "200": description: "Dados da cobrança recorrente." content: "application/json": schema: $ref: "#/components/schemas/CobRCompleta" examples: response1: $ref: "#/components/examples/cobRResponse2" response2: $ref: "#/components/examples/cobRResponse3" response3: $ref: "#/components/examples/cobRResponse4" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobr": post: tags: - "CobR" summary: "Criar cobrança recorrente." security: - OAuth2: [cobr.write] description: |- Endpoint para criar uma cobrança recorrente, neste caso, o txid deve ser definido pelo PSP. requestBody: $ref: "#/components/requestBodies/CobRBody" responses: "201": description: "Cobrança recorrente criada." content: "application/json": schema: $ref: "#/components/schemas/CobRGerada" examples: response1: $ref: "#/components/examples/cobRResponse1" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: requisicao1: $ref: "#/components/examples/OperacaoInvalidaCobRExample1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" get: parameters: - in: "query" name: "inicio" required: true schema: $ref: "#/components/schemas/Inicio" - in: "query" name: "fim" required: true schema: $ref: "#/components/schemas/Fim" - name: "idRec" in: "query" schema: type: "string" title: "ID Recorrência" pattern: "[a-zA-Z0-9]{29}" minLength: 29 maxLength: 29 description: "Filtro pelo Identificador da Recorrência." - name: "cpf" in: "query" schema: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." - name: "cnpj" in: "query" schema: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." - name: "status" in: "query" schema: type: "string" title: "Status do registro da recorrência" description: "Filtro pelo status da recorrência." - $ref: "#/components/parameters/paginaAtual" - $ref: "#/components/parameters/itensPorPagina" tags: - "CobR" summary: "Consultar lista de cobranças recorrentes." security: - OAuth2: [cobr.read] description: |- Endpoint para consultar cobranças recorrentes através de parâmetros como início, fim, idRec, cpf, cnpj e status. responses: "200": description: "Lista de cobranças recorrentes." content: "application/json": schema: $ref: "#/components/schemas/CobsRConsultadas" examples: retorno1: $ref: "#/components/examples/getCobR1" "403": $ref: "#/components/responses/AcessoNegado" "503": $ref: "#/components/responses/ServicoIndisponivel" "/cobr/{txid}/retentativa/{data}": parameters: - name: txid in: path required: true schema: $ref: "#/components/schemas/TxId" - name: data in: path required: true description: "Data prevista para liquidação da ordem de pagamento correspondente. Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601." schema: type: "string" format: "date" example: "2023-04-01" post: tags: - "CobR" summary: "Solicitar retentativa de cobrança." security: - OAuth2: [cobr.write] description: |- Endpoint para solicitar retentativa de uma cobrança recorrente. responses: "201": description: "Cobrança recorrente." content: "application/json": schema: allOf: - required: ["tentativas"] - $ref: "#/components/schemas/CobRCompleta" examples: response1: $ref: "#/components/examples/cobRResponse3" "400": description: "Requisição com formato inválido." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/RequisicaoInvalidaCobRTentativaExample1" "403": $ref: "#/components/responses/AcessoNegado" "404": $ref: "#/components/responses/NaoEncontrado" "503": $ref: "#/components/responses/ServicoIndisponivel" components: securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://pix.example.com/oauth/token scopes: cob.write: Permissão para alteração de cobranças imediatas cob.read: Permissão para consulta de cobranças imediatas cobr.write: Permissão para alteração de cobranças recorrentes cobr.read: Permissão para consulta de cobranças recorrentes rec.write: Permissão para alteração de recorrências rec.read: Permissão para consulta de recorrências solicrec.write: Permissão para alteração de solicitações de recorrências solicrec.read: Permissão para consulta de solicitações de recorrências cobv.write: Permissão para alteração de cobranças com vencimento cobv.read: Permissão para consulta de cobranças com vencimento lotecobv.write: Permissão para alteração de lotes de cobranças com vencimento lotecobv.read: Permissão para consulta de lotes de cobranças com vencimento pix.write: Permissão para alteração de Pix pix.read: Permissão para consulta de Pix webhook.read: Permissão para consulta do webhook webhook.write: Permissão para alteração do webhook webhookrec.read: Permissão para consulta do webhook webhookrec.write: Permissão para alteração do webhook webhookcobr.read: Permissão para consulta do webhook webhookcobr.write: Permissão para alteração do webhook payloadlocation.write: Permissão para alteração de payloads payloadlocation.read: Permissão para consulta de payloads payloadlocationrec.write: Permissão para alteração de payloads payloadlocationrec.read: Permissão para consulta de payloads examples: cobBody1: summary: "Exemplo de criação de cobrança com vencimento 1" value: calendario: dataDeVencimento: "2020-12-31" validadeAposVencimento: 30 loc: id: 789 devedor: logradouro: "Alameda Souza, Numero 80, Bairro Braz" cidade: "Recife" uf: "PE" cep: "70011750" cpf: "12345678909" nome: "Francisco da Silva" valor: original: "123.45" multa: modalidade: "2" valorPerc: "15.00" juros: modalidade: "2" valorPerc: "2.00" desconto: modalidade: "1" descontoDataFixa: - data: "2020-11-30" valorPerc: "30.00" chave: "5f84a4c5-c5cb-4599-9f13-7eb4d419dacc" solicitacaoPagador: "Cobrança dos serviços prestados." cobBody2: summary: "Exemplo de criação de cobrança imediata 1" value: calendario: expiracao: 3600 devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "37.00" modalidadeAlteracao: 1 chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" solicitacaoPagador: "Serviço realizado." infoAdicionais: - nome: "Campo 1" valor: "Informação Adicional1 do PSP-Recebedor" - nome: "Campo 2" valor: "Informação Adicional2 do PSP-Recebedor" cobBody3: summary: "Exemplo de revisão de cobrança 1" value: loc: id: 7768 devedor: cpf: "12345678909" nome: "Francisco da Silva" valor: original: "123.45" solicitacaoPagador: "Cobrança dos serviços prestados." cobBody4: summary: "Exemplo de revisão de cobrança 2" value: valor: original: "567.89" solicitacaoPagador: "Informar cartão fidelidade" cobBody5: summary: "Exemplo de revisão de cobrança 3" value: status: REMOVIDA_PELO_USUARIO_RECEBEDOR cobBody6: summary: "Exemplo de criação de cobrança imediata com Saque Pix" value: devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "0.00" modalidadeAlteracao: 0 retirada: saque: valor: "5.00" modalidadeAlteracao: 0 modalidadeAgente: "AGPSS" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" cobBody7: summary: "Exemplo de revisão de cobrança com vencimento 1" value: loc: id: 789 devedor: logradouro: "Alameda Souza, Numero 80, Bairro Braz" cidade: "Recife" uf: "PE" cep: "70011750" cpf: "12345678909" nome: "Francisco da Silva" valor: original: "123.45" solicitacaoPagador: "Cobrança dos serviços prestados." cobBody8: summary: "Exemplo de criação de cobrança imediata com Saque Pix 2" value: devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "0.00" modalidadeAlteracao: 0 retirada: saque: valor: "20.00" modalidadeAlteracao: 1 modalidadeAgente: "AGPSS" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" cobBody9: summary: "Exemplo de criação de cobrança imediata com Saque Pix 3" value: devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "10.00" modalidadeAlteracao: 0 retirada: troco: valor: "0.00" modalidadeAlteracao: 1 modalidadeAgente: "AGTEC" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" cobRBody1: summary: "Exemplo de criação de cobrança recorrente 1" value: idRec: RR1234567820240115abcdefghijk infoAdicional: "Serviços de Streamming de Música e Filmes." calendario: dataDeVencimento: "2024-04-15" valor: original: "106.07" ajusteDiaUtil: true devedor: cep: "89256-140" cidade: "Uberlândia" email: "sebastiao.tavares@mail.com" logradouro: "Alameda Franco 1056" uf: "MG" recebedor: agencia: "9708" conta: "012682" tipoConta: CORRENTE cobRBody2: summary: "Exemplo de revisão de cobrança recorrente 1" value: status: CANCELADA cobRResponse1: summary: "Exemplo de cobrança recorrente 1" value: idRec: RR1234567820240115abcdefghijk txid: 3136957d93134f2184b369e8f1c0729d infoAdicional: "Serviços de Streamming de Música e Filmes." calendario: criacao: "2024-04-01" dataDeVencimento: "2024-04-15" status: CRIADA valor: original: "106.07" politicaRetentativa: PERMITE_3R_7D ajusteDiaUtil: true devedor: cep: "89256-140" cidade: "Uberlândia" email: "sebastiao.tavares@mail.com" logradouro: "Alameda Franco 1056" uf: "MG" recebedor: agencia: "9708" conta: "012682" tipoConta: CORRENTE atualizacao: - data: "2024-04-01T14:47:29.470Z" status: CRIADA cobRResponse2: summary: "Exemplo de cobrança recorrente 1" value: idRec: RR1234567820240115abcdefghijk txid: 3136957d93134f2184b369e8f1c0729d infoAdicional: "Serviços de Streamming de Música e Filmes." calendario: criacao: "2024-04-01" dataDeVencimento: "2024-04-15" valor: original: "106.07" status: CRIADA politicaRetentativa: PERMITE_3R_7D ajusteDiaUtil: true devedor: cep: "89256-140" cidade: "Uberlândia" email: "sebastiao.tavares@mail.com" logradouro: "Alameda Franco 1056" uf: "MG" recebedor: agencia: "9708" conta: "012682" tipoConta: CORRENTE atualizacao: - data: "2024-04-01T14:47:29.470Z" status: CRIADA cobRResponse3: summary: "Exemplo de cobrança recorrente 2" value: idRec: RR123456782024061999000566354 txid: 7f733863543b4a16b516d839bd4bc34e calendario: criacao: "2024-05-20" dataDeVencimento: "2024-06-20" valor: original: "50.33" status: ATIVA politicaRetentativa: PERMITE_3R_7D ajusteDiaUtil: true devedor: cep: "63259-740" cidade: "Campinas" email: "beltrano.silva@mail.com" logradouro: "Rua Gonçalves Dias 605" uf: "SP" recebedor: cnpj: "58966551101210" conta: "997182" tipoConta: CORRENTE tentativas: - dataLiquidacao: "2024-06-22" tipo: AGND endToEndId: E12345678202406201221abcdef12345 status: EXPIRADA - dataLiquidacao: "2024-06-24" tipo: NTAG endToEndId: E12345678202406201221abcdef12345 status: AGENDADA atualizacao: - data: "2024-05-20T14:47:29.470Z" status: CRIADA - data: "2024-05-21T10:18:20.120Z" status: ATIVA cobRResponse4: summary: "Exemplo de cobrança recorrente 3" value: idRec: RN985156112024071999000566354 txid: 517bd858b59d458a841280b0f0a60bfa calendario: criacao: "2024-05-20" dataDeVencimento: "2024-06-20" valor: original: "210.00" status: CANCELADA politicaRetentativa: NAO_PERMITE ajusteDiaUtil: true devedor: cep: "26901-340" cidade: "São Luís" email: "fulano.tal@mail.com" logradouro: "Alameda Cardoso 1007" uf: "MA" recebedor: cnpj: "31166575201770" conta: "107262" nome: "Empresa de Telecomunicações SA" tipoConta: POUPANÇA tentativas: - dataLiquidacao: "2024-06-20" tipo: AGND endToEndId: E12345678202406201221abcdef12345 status: CANCELADA encerramento: cancelamento: solicitante: "USUARIO_RECEBEDOR" codigo: "SLCR" descricao: "Cancelamento de agendamento solicitado pelo usuário recebedor" atualizacao: - data: "2024-05-20T14:47:29.470Z" status: CRIADA - data: "2024-05-21T10:18:20.120Z" status: ATIVA - data: "2024-05-26T10:18:20.120Z" status: CANCELADA loteCobVBody1: summary: "Exemplo de criação de lote de cobranças com vencimento 1" value: descricao: "Cobranças dos alunos do turno vespertino" cobsv: - calendario: dataDeVencimento: "2020-12-31" validadeAposVencimento: 30 txid: "fb2761260e554ad593c7226beb5cb650" loc: id: 789 devedor: logradouro: "Alameda Souza, Numero 80, Bairro Braz" cidade: "Recife" uf: "PE" cep: "70011750" cpf: "08577095428" nome: "João Souza" valor: original: "100.00" chave: "7c084cd4-54af-4172-a516-a7d1a12b75cc" solicitacaoPagador: "Informar matrícula" - calendario: dataDeVencimento: "2020-12-31" validadeAposVencimento: 30 txid: "7978c0c97ea847e78e8849634473c1f1" loc: id: 57221 devedor: logradouro: "Rua 15, Numero 1, Bairro Campo Grande" cidade: "Recife" uf: "PE" cep: "70055751" cpf: "15311295449" nome: "Manoel Silva" valor: original: "100.00" chave: "7c084cd4-54af-4172-a516-a7d1a12b75cc" solicitacaoPagador: "Informar matrícula" loteCobVBodyRevisado1: summary: "Exemplo de revisão de lote de cobranças com vencimento 1" value: cobsv: - calendario: dataDeVencimento: "2020-01-10" txid: "fb2761260e554ad593c7226beb5cb650" valor: original: "110.00" - calendario: dataDeVencimento: "2020-01-10" txid: "7978c0c97ea847e78e8849634473c1f1" valor: original: "110.00" cobResponse1: summary: "Exemplo de cobrança imediata 1" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "7978c0c97ea847e78e8849634473c1f1" revisao: 0 loc: id: 789 location: "pix.example.com/qr/9d36b84fc70b478fb95c12729b90ca25" tipoCob: "cob" location: "pix.example.com/qr/9d36b84fc70b478fb95c12729b90ca25" status: "ATIVA" devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "37.00" modalidadeAlteracao: 1 chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" solicitacaoPagador: "Serviço realizado." infoAdicionais: - nome: "Campo 1" valor: "Informação Adicional1 do PSP-Recebedor" - nome: "Campo 2" valor: "Informação Adicional2 do PSP-Recebedor" cobResponse2: summary: "Exemplo de cobrança imediata 2" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "655dfdb1a4514b8fbb58254b958913fb" revisao: 1 loc: id: 567 location: "pix.example.com/qr/1dd7f893a58e417287028dc33e21a403" location: "pix.example.com/qr/1dd7f893a58e417287028dc33e21a403" status: "CONCLUIDA" devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "100.00" modalidadeAlteracao: 0 chave: "40a0932d-1918-4eee-845d-35a2da1690dc" solicitacaoPagador: "Informar cartão fidelidade" pix: - endToEndId: "E12345678202009091221kkkkkkkkkkk" txid: "655dfdb1a4514b8fbb58254b958913fb" valor: "110.00" horario: "2020-09-09T20:15:00.358Z" infoPagador: "0123456789" devolucoes: - id: "123ABC" rtrId: "Dxxxxxxxx202009091221kkkkkkkkkkk" valor: "10.00" horario: solicitacao: "2020-09-09T20:15:00.358Z" status: "EM_PROCESSAMENTO" cobResponse3: summary: "Exemplo de cobrança revisada 1" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "7978c0c97ea847e78e8849634473c1f1" revisao: 1 loc: id: 7768 location: "pix.example.com/qr/b1/9d36b84fc70b478fb95c12729b90ca25" tipoCob: "cob" location: "pix.example.com/qr/v1/9d36b84fc70b478fb95c12729b90ca25" status: "ATIVA" devedor: cpf: "12345678909" nome: "Francisco da Silva" valor: original: "123.45" modalidadeAlteracao: 0 chave: "a1f4102e-a446-4a57-bcce-6fa48899c1d1" solicitacaoPagador: "Cobrança dos serviços prestados." cobResponse4: summary: "Exemplo de cobrança com vencimento 1" value: calendario: criacao: "2020-09-09T20:15:00.358Z" dataDeVencimento: "2020-12-31" validadeAposVencimento: 30 txid: "7978c0c97ea847e78e8849634473c1f1" revisao: 0 loc: id: 789 location: "pix.example.com/qr/c2/cobv/9d36b84fc70b478fb95c12729b90ca25" tipoCob: "cobv" status: "ATIVA" devedor: logradouro: "Alameda Souza, Numero 80, Bairro Braz" cidade: "Recife" uf: "PE" cep: "70011750" cpf: "12345678909" nome: "Francisco da Silva" recebedor: logradouro: "Rua 15 Numero 1200, Bairro São Luiz" cidade: "São Paulo" uf: "SP" cep: "70800100" cnpj: "56989000019533" nome: "Empresa de Logística SA" valor: original: "123.45" chave: "5f84a4c5-c5cb-4599-9f13-7eb4d419dacc" solicitacaoPagador: "Cobrança dos serviços prestados." cobResponse5: summary: "Exemplo de cobrança imediata com Saque Pix" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "33beb661beda44a8928fef47dbeb2dc5" revisao: 0 loc: id: 1004 location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" tipoCob: "cob" location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" status: "ATIVA" devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "0.00" modalidadeAlteracao: 0 retirada: saque: valor: "5.00" modalidadeAlteracao: 0 modalidadeAgente: "AGPSS" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" cobResponse6: summary: "Exemplo de cobrança imediata com Saque Pix 2" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "33beb661beda44a8928fef47dbeb2dc5" revisao: 0 loc: id: 1004 location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" tipoCob: "cob" location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" status: "ATIVA" devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "0.00" modalidadeAlteracao: 0 retirada: saque: valor: "20.00" modalidadeAlteracao: 1 modalidadeAgente: "AGPSS" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" cobResponse7: summary: "Exemplo de cobrança imediata com Saque Pix 3" value: calendario: criacao: "2020-09-09T20:15:00.358Z" expiracao: 3600 txid: "33beb661beda44a8928fef47dbeb2dc5" revisao: 0 loc: id: 1004 location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" tipoCob: "cob" location: "pix.example.com/qr/7faa6893c4e64893a503baf0d40af213" status: "ATIVA" devedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" valor: original: "10.00" modalidadeAlteracao: 0 retirada: troco: valor: "0.00" modalidadeAlteracao: 1 modalidadeAgente: "AGTEC" prestadorDoServicoDeSaque: "12345678" chave: "7d9f0335-8dcc-4054-9bf9-0dbd61d36906" recBody1: summary: "Exemplo de Recorrência 1" value: vinculo: contrato: "63100862" devedor: cpf: "45164632481" nome: "Fulano de Tal" objeto: "Serviço de Streamming de Música." calendario: dataFinal: "2025-04-01" dataInicial: "2024-04-01" periodicidade: MENSAL valor: valorRec: "35.00" politicaRetentativa: NAO_PERMITE loc: 108 recebedor: cnpj: "01602606113708" nome: "Empresa de Serviços SA" ativacao: dadosJornada: txid: "33beb661beda44a8928fef47dbeb2dc5" recBody2: summary: "Exemplo de Recorrência 2" value: vinculo: contrato: "998782003" devedor: cpf: "02989131415" nome: "Beltrano da Silva" objeto: "Serviço de Plano de Saúde." calendario: dataInicial: "2024-10-10" periodicidade: ANUAL valor: valorMinimoRecebedor: "5000.00" politicaRetentativa: PERMITE_3R_7D recebedor: cnpj: "09172302153900" nome: "Empresa de Serviços de Saúde SA" recBody3: summary: "Exemplo de Revisão de Recorrência 1" value: loc: 108 vinculo: devedor: nome: "Fulano de Tal" calendario: dataInicial: "2024-04-01" ativacao: dadosJornada: txid: "33beb661beda44a8928fef47dbeb2dc5" recResponse1: summary: "Exemplo de Recorrência 1" value: idRec: RN1234567820240115abcdefghijk vinculo: contrato: "63100862" devedor: cpf: "45164632481" nome: "Fulano de Tal" objeto: "Serviço de Streamming de Música." calendario: dataFinal: "2025-04-01" dataInicial: "2024-04-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE recebedor: cnpj: "01602606113708" nome: "Empresa de Serviços SA" valor: valorRec: "35.00" status: CRIADA loc: criacao: "2023-12-10T07:10:05.115Z" id: 108 location: pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002 idRec: RN1234567820240115abcdefghijk ativacao: dadosJornada: tipoJornada: JORNADA_3 txid: "33beb661beda44a8928fef47dbeb2dc5" atualizacao: - data: "2023-12-19T12:28:05.230Z" nome: CRIADA recResponse2: summary: "Exemplo de Recorrência 2" value: idRec: RR1234567820240115abcdefghijk vinculo: contrato: "998782003" devedor: cpf: "02989131415" nome: "Beltrano da Silva" objeto: "Serviço de Plano de Saúde." calendario: dataInicial: "2024-10-10" periodicidade: ANUAL politicaRetentativa: PERMITE_3R_7D recebedor: cnpj: "09172302153900" nome: "Empresa de Serviços de Saúde SA" valor: valorMinimoRecebedor: "5000.00" status: CRIADA atualizacao: - data: "2024-01-11T10:27:01.280Z" nome: CRIADA recResponse3: summary: "Exemplo de Recorrência Completa com Dados QR Jornada 2" value: idRec: RN1234567820240115abcdefghijk status: APROVADA valor: valorRec: "300.00" vinculo: contrato: "98625023" devedor: cpf: "87734514122" nome: "Fulano de Tal" objeto: "Serviços de Gestão de Imóveis" calendario: dataFinal: "2028-09-01" dataInicial: "2024-02-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE loc: criacao: "2023-12-19T12:28:05.230Z" id: 5100 location: pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002 idRec: RN1234567820240115abcdefghijk pagador: codMun: "2673833" cpf: "75633122216" ispbParticipante: "81102623" recebedor: cnpj: "92221288310574" nome: "Imobiliária Bom Sucesso" atualizacao: - data: "2024-01-03T08:30:02.050Z" nome: CRIADA - data: "2024-01-04T09:40:42.210Z" nome: APROVADA dadosQR: jornada: JORNADA_2 pixCopiaECola: 00020126180014br.gov.bcb.pix5204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***80800014br.gov.bcb.pix2558pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002630462C9 recResponse4: summary: "Exemplo de Recorrência Completa Jornada 1" value: idRec: RR7784567820240528123defgh775 status: CRIADA valor: valorRec: "250.00" vinculo: contrato: "9612389" devedor: cpf: "45832633800" nome: "Alfredo Tavares" objeto: "Serviços Esportivos" calendario: dataFinal: "2028-09-01" dataInicial: "2024-02-01" periodicidade: MENSAL politicaRetentativa: PERMITE_3R_7D pagador: codMun: "1509873" cpf: "45832633800" ispbParticipante: "52780028" recebedor: cnpj: "56958712500811" nome: "Academia Saúde" atualizacao: - data: "2024-01-03T08:30:02.050Z" nome: CRIADA recResponse5: summary: "Exemplo de Recorrência Completa Jornada 1 com Cancelamento" value: idRec: RR1026652320240821lab77511abf status: CANCELADA valor: valorMinimoRecebedor: "800.00" vinculo: contrato: "298620560" devedor: cpf: "12600511100" nome: "Sebastião Silva" objeto: "Faculdade de Engenharia" calendario: dataFinal: "2027-09-01" dataInicial: "2024-10-01" periodicidade: MENSAL politicaRetentativa: PERMITE_3R_7D pagador: codMun: "1509873" cpf: "12600511100" ispbParticipante: "52780028" recebedor: cnpj: "61593007802371" nome: "Universidade Brasileira" encerramento: cancelamento: solicitante: "USUARIO_RECEBEDOR" codigo: "SLCR" descricao: "Cancelamento solicitado pelo usuário recebedor" atualizacao: - data: "2024-08-03T08:30:02.050Z" nome: CRIADA - data: "2024-09-06T09:11:42.205Z" nome: APROVADA - data: "2024-10-06T15:05:33.305Z" nome: CANCELADA ativacao: tipoJornada: JORNADA_1 recResponse6: summary: "Exemplo de Recorrência Completa com Dados QR Jornada 3" value: idRec: RN1234567820241203fghijkabcde status: CRIADA valor: valorRec: "150.00" vinculo: contrato: "5582610" devedor: cpf: "45164632481" nome: "Fulano de Tal" objeto: "Serviços de Gestão de Imóveis" calendario: dataFinal: "2028-09-01" dataInicial: "2025-02-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE loc: criacao: "2024-10-01T10:15:01.115Z" id: 2726 location: pix.example.com/qr/v2/rec/94ed2badcbc04c15b0bb7fa353194890 idRec: RN1234567820241203fghijkabcde recebedor: cnpj: "12345678000195" nome: "Empresa de Serviços SA" atualizacao: - data: "2024-12-03T08:30:02.050Z" nome: CRIADA dadosQR: jornada: JORNADA_3 pixCopiaECola: 00020101021226760014br.gov.bcb.pix2554pix.example.com/qr/v2/8b3da2f39a4140d1a91abd93113bd4415204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***80800014br.gov.bcb.pix2558pix.example.com/qr/v2/rec/94ed2badcbc04c15b0bb7fa35319489063047741 recResponse7: summary: "Exemplo de Recorrência Completa com Dados QR Jornada 4" value: idRec: RN1234567820241130lkwdefghijk status: CRIADA valor: valorRec: "210.00" vinculo: contrato: "11750023" devedor: cpf: "75633122216" nome: "Francisco da Silva" objeto: "Assinatura de Serviços de Transporte" calendario: dataFinal: "2026-12-01" dataInicial: "2025-03-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE loc: criacao: "2024-05-19T10:28:05.230Z" id: 6153 location: pix.example.com/qr/v2/rec/3ffa640fa4f14080adccb949fa2dc0d0 idRec: RN1234567820241130lkwdefghijk recebedor: cnpj: "56989000019533" nome: "Empresa de Logística SA" atualizacao: - data: "2024-11-30T08:30:02.050Z" nome: CRIADA dadosQR: jornada: JORNADA_4 pixCopiaECola: 00020101021226810014br.gov.bcb.pix2559pix.example.com/qr/v2/cobv/1e6c54d3ec9449b7a7fc53b6b0f998e75204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***80800014br.gov.bcb.pix2558pix.example.com/qr/v2/rec/3ffa640fa4f14080adccb949fa2dc0d06304A441 recWebhookNotification1: summary: "Exemplo de Notificação de Recorrência 1" value: recs: - idRec: RR1026652320240821lab77511abf status: APROVADA atualizacao: - status: CRIADA data: '2024-08-20T10:12:07.567Z' - status: APROVADA data: '2024-08-22T12:43:53.337Z' ativacao: tipoJornada: JORNADA_3 dadosJornada: txid: r9eFIFmwcZ55Nm4RsKZAAtIvvCrlcNN6 recPayload1: summary: "Exemplo de payload de recorrência 1" value: idRec: RN123456782024011577825445612 vinculo: contrato: "5582610" devedor: cpf: "45164632481" nome: "Fulano de Tal" objeto: "Serviço de Streamming de Música." calendario: dataFinal: "2025-04-01" dataInicial: "2024-04-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE valor: valorRec: "35.00" recebedor: cnpj: "28765007802371" nome: "Startup Musical" ispbParticipante: "12345678" atualizacao: - status: CRIADA data: '2024-03-20T10:12:07.567Z' solicRecBody1: summary: "Exemplo de criação de solicitação de confirmação de recorrência 1" value: idRec: RN123456782024011577825445612 calendario: dataExpiracaoSolicitacao: "2023-12-20T12:17:11.926Z" destinatario: agencia: "2569" conta: "550689" cpf: "15231470190" ispbParticipante: "91193552" solicRecBody2: summary: "Exemplo de revisão de solicitação de confirmação de recorrência 1" value: status: CANCELADA solicRecResponse1: summary: "Exemplo de solicitação de confirmação de recorrência 1" value: idSolicRec: SC876456782024021577825445312 idRec: RN123456782024011577825445612 calendario: dataExpiracaoSolicitacao: "2023-12-20T12:17:11.926Z" status: CRIADA destinatario: agencia: "2569" conta: "550689" cpf: "15231470190" ispbParticipante: "91193552" atualizacao: - data: "2023-12-20T12:18:18.618Z" status: CRIADA recPayload: idRec: RN123456782024011577825445612 vinculo: contrato: "561238008" devedor: cpf: "15231470190" nome: "Fulano de Tal" objeto: "Serviços de Telecomunicações" calendario: dataFinal: "2023-12-01" dataInicial: "2024-04-01" periodicidade: MENSAL recebedor: cnpj: "94370926517368" nome: "Empresa de Serviços SA" valor: valorRec: "1200.09" atualizacao: - data: "2023-12-15T08:30:07.115Z" status: CRIADA solicRecResponse2: summary: "Exemplo de solicitação de confirmação de recorrência 2" value: idSolicRec: SC875116782024021577820565312 idRec: RR692350012024051502650081069 calendario: dataExpiracaoSolicitacao: "2024-12-15T12:17:11.926Z" status: REJEITADA destinatario: agencia: "1179" conta: "73851" cpf: "07031470825" ispbParticipante: "91193552" atualizacao: - data: "2024-12-15T12:18:18.618Z" status: CRIADA - data: "2024-12-15T16:18:18.618Z" status: ENVIADA - data: "2024-12-16T08:50:18.268Z" status: REJEITADA recPayload: idRec: RR692350012024051502650081069 vinculo: contrato: "Assinatura Individual" devedor: cpf: "07031470825" nome: "Sebastião Silva" objeto: "Serviços de Entrega de Alimentos" valor: valorMinimoRecebedor: "300.00" calendario: dataFinal: "2025-05-01" dataInicial: "2024-12-01" periodicidade: MENSAL recebedor: cnpj: "25603926517008" nome: "Empresa de Produtos Alimentícios SA" atualizacao: - data: "2023-12-08T16:24:35.233Z" status: CRIADA solicRecResponse3: summary: "Exemplo de solicitação de confirmação de recorrência 1" value: idSolicRec: SC876456782024021577825445312 idRec: RN123456782024011577825445612 calendario: dataExpiracaoSolicitacao: "2024-06-11T07:17:11.008Z" status: CANCELADA destinatario: agencia: "2569" conta: "550689" cpf: "15231470190" ispbParticipante: "91193552" atualizacao: - data: "2024-05-16T17:01:06.781Z" status: CRIADA - data: "2024-05-30T10:18:18.618Z" status: CANCELADA recPayload: idRec: RN123456782024011577825445612 vinculo: contrato: "Banda Larga Fibra Ótica" devedor: cpf: "15231470190" nome: "Fulano de Tal" objeto: "Serviços de Telecomunicações" valor: valorRec: "1200.09" calendario: dataFinal: "2025-05-01" dataInicial: "2024-05-01" periodicidade: MENSAL recebedor: cnpj: "94370926517368" nome: "Empresa de Serviços SA" atualizacao: - data: "2023-12-08T16:24:35.233Z" status: CRIADA loteCobVResponse1: summary: "Exemplo de lote de cobranças com vencimento 1" value: descricao: "Cobranças dos alunos do turno vespertino" criacao: "2020-11-01T20:15:00.358Z" cobsv: - criacao: "2020-11-01T20:15:00.358Z" txid: "fb2761260e554ad593c7226beb5cb650" status: "CRIADA" - txid: "7978c0c97ea847e78e8849634473c1f1" status: "NEGADA" problema: type: https://pix.bcb.gov.br/api/v2/error/CobVOperacaoInvalida title: "Cobrança inválida." status: 400 detail: "A requisição que busca alterar ou criar uma cobrança com vencimento não respeita o _schema_ ou está semanticamente errada." violacoes: - razao: "O objeto cobv.devedor não respeita o _schema_." propriedade: "cobv.devedor" loteCobVResponse2: summary: "Exemplo de lote de cobranças com vencimento 2" value: descricao: "Cobranças dos assinantes anuais" criacao: "2020-11-17T20:00:00.358Z" cobsv: - criacao: "2020-11-17T20:00:00.358Z" txid: "06601eaa3822423fbe897f613b983e01" status: "CRIADA" - criacao: "2020-11-17T20:00:00.358Z" txid: "4e07059760d54cf493de6e7f1fbfad9a" status: "CRIADA" payloadLocationBody1: summary: "Exemplo de Payload Location 1" value: tipoCob: "cob" payloadLocationBody2: summary: "Exemplo de Payload Location 2" value: tipoCob: "cobv" payloadLocationResponse1: summary: "Exemplo de Payload Location 1" value: id: 7716 txid: "fda9460fe04e4f129b72863ae57ee22f" location: "pix.example.com/qr/v2/cobv/2353c790eefb11eaadc10242ac120002" tipoCob: "cobv" criacao: "2020-03-11T21:19:51.013Z" payloadLocationResponse2: summary: "Exemplo de Payload Location 2" value: id: 856 txid: "31e08604f9ce459bb59672332af8d672" location: "pix.example.com/qr/v2/cobv/39c9f435c6324867aa1dec1260e1127c" tipoCob: "cobv" criacao: "2020-02-10T19:22:52.013Z" payloadLocationResponse3: summary: "Exemplo de Payload Location 3" value: id: 2316 txid: "eb9d87f36fca4c92b7d5ec48e2ee3853" location: "pix.example.com/qr/v2/a8534e273ecb47d3ac30613104544466" tipoCob: "cob" criacao: "2020-05-31T19:39:54.013Z" payloadLocationResponse4: summary: "Exemplo de Payload Location 3" value: id: 2316 location: "pix.example.com/qr/v2/a8534e273ecb47d3ac30613104544466" tipoCob: "cob" criacao: "2020-05-31T19:39:54.013Z" payloadLocationResponse5: summary: "Exemplo de Payload Location 1" value: id: 7716 location: "pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002" tipoCob: "cob" criacao: "2020-03-11T21:19:51.013Z" payloadLocationResponse6: summary: "Exemplo de Payload Location 2" value: id: 856 location: "pix.example.com/qr/v2/cobv/39c9f435c6324867aa1dec1260e1127c" tipoCob: "cobv" criacao: "2020-02-10T19:22:52.013Z" payloadLocationRecResponse1: summary: "Exemplo de Payload Location de Recorrência 1" value: id: 12069 location: pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002 criacao: "2023-12-20T12:38:28.774Z" idRec: RR123456782024011510056892226 payloadLocationRecResponse2: summary: "Exemplo de Payload Location de Recorrência 1" value: id: 12069 location: pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002 criacao: "2023-12-20T12:38:28.774Z" pixResponse1: summary: "Exemplo de Pix 1" value: endToEndId: "E12345678202009091221abcdef12345" txid: "cd1fe328c875481285a6f233ae41b662" valor: "100.00" horario: "2020-09-10T13:03:33.902Z" infoPagador: "Reforma da casa" devolucoes: - id: "000AAA111" rtrId: "D12345678202009091000abcde123456" valor: "11.00" horario: solicitacao: "2020-09-10T13:03:33.902Z" status: EM_PROCESSAMENTO pixResponse2: summary: "Exemplo de Pix 2" value: endToEndId: "E12345678202009091221ghijk78901234" txid: "5b933948f3224266b1050ac54319e775" valor: "200.00" horario: "2020-09-10T13:03:33.902Z" infoPagador: "Revisão do carro" pixResponse3: summary: "Exemplo de Pix com Saque" value: endToEndId: "E88631478202009091221ghijk78901234" txid: "82433415910c47e5adb6ac3527cca160" valor: "200.00" componentesValor: original: valor: "180.00" saque: valor: "20.00" modalidadeAgente: "AGPSS" prestadorDeServicoDeSaque: "12345678" horario: "2020-09-10T13:03:33.902Z" infoPagador: "Saque Pix" webhookBody1: summary: "Exemplo de configuração de Webhook 1" value: webhookUrl: "https://pix.example.com/api/webhook/" webhookResponse1: summary: "Exemplo de consulta de Webhook 1" value: webhookUrl: "https://pix.example.com/api/webhook/" chave: "40a0932d-1918-4eee-845d-35a2da1690dc" criacao: "2020-11-11T10:15:00.358Z" pixWebhook1: summary: "Exemplo de Webhook Pix 1" value: endToEndId: "E12345678202009091221kkkkkkkkkkk" txid: "c3e0e7a4e7f1469a9f782d3d4999343c" valor: "110.00" horario: "2020-09-09T20:15:00.358Z" infoPagador: "0123456789" devolucoes: id: "123ABC" rtrId: "D12345678202009091221abcdf098765" valor: "10.00" horario: solicitacao: "2020-09-09T20:15:00.358Z" status: "EM_PROCESSAMENTO" pixWebhook2: summary: "Exemplo de Webhook Pix 2" value: endToEndId: "E87654321202009091221dfghi123456" txid: "971122d8f37211eaadc10242ac120002" valor: "110.00" horario: "2020-09-09T20:15:00.358Z" infoPagador: "0123456789" recWebhookBody1: summary: "Exemplo de criação de webhook de recorrência" value: webhookUrl: https://usuario.recebedor.com/api/webhookrec/ recWebhookResponse1: summary: "Exemplo de webhook de recorrência" value: webhookUrl: https://usuario.recebedor.com/api/webhookrec/ criacao: "2023-12-20T12:51:16.485Z" cobRWebhookBody1: summary: "Exemplo de criação de webhook de cobrança recorrente" value: webhookUrl: https://usuario.recebedor.com/api/webhookcobr/ cobRWebhookResponse1: summary: "Exemplo de webhook de cobrança recorrente" value: webhookUrl: https://usuario.recebedor.com/api/webhookcobr/ criacao: "2023-12-20T12:51:16.485Z" cobRWebhookNotification1: summary: "Exemplo de webhook de cobrança recorrente" value: cobsr: - idRec: RR1234567820240115abcdefghijk txid: 3136957d93134f2184b369e8f1c0729d status: ATIVA atualizacao: - status: ATIVA data: '2024-08-20T12:34:21.300Z' tentativas: - dataLiquidacao: '2024-20-08' tipo: AGND status: SOLICITADA endToEndId: E12345678202406201221abcdef12345 devolucaoResponse1: summary: "Exemplo de devolução 1" value: id: "123456" rtrId: D12345678202009091000abcde123456 valor: "7.89" horario: solicitacao: "2020-09-11T15:25:59.411Z" status: EM_PROCESSAMENTO devolucaoResponse2: summary: "Exemplo de devolução 2" value: id: "502" rtrId: D12345678202011111000fghij789012 valor: "20.00" horario: solicitacao: "2020-09-11T15:25:59.411Z" status: NAO_REALIZADO motivo: "Negado por timeout" devolucaoSolicitada1: summary: "Exemplo de solicitação de devolução 1" value: valor: "7.89" cobPayload1: summary: "Exemplo de payload de cobrança imediata 1" value: calendario: criacao: "2020-09-15T19:39:54.013Z" apresentacao: "2020-04-01T18:00:00Z" expiracao: 3600 txid: "fc9a4366ff3d4964b5dbc6c91a8722d3" revisao: 3 status: "ATIVA" valor: original: "500.00" modalidadeAlteracao: 0 chave: "7407c9c8-f78b-11ea-adc1-0242ac120002" solicitacaoPagador: "Informar cartao fidelidade" infoAdicionais: - nome: "quantidade" valor: "2" cobPayload2: summary: "Exemplo de payload de cobrança com vencimento 1" value: calendario: criacao: "2020-09-15T19:39:54.013Z" apresentacao: "2020-04-01T18:00:00Z" dataDeVencimento: "2020-12-31" validadeAposVencimento: 30 devedor: cnpj: "56989000019533" nome: "Empresa de Alimentos SA" recebedor: logradouro: "Rua 20 Numero 70, Bairro Luz" cidade: "Belo Horizonte" uf: "MG" cep: "55120750" cnpj: "58900633120711" nome: "Empresa de Abastecimento SA" txid: "fc9a4366ff3d4964b5dbc6c91a8722d3" revisao: 3 status: "ATIVA" valor: original: "123.45" multa: "15.00" juros: "2.00" final: "140.45" chave: "7407c9c8-f78b-11ea-adc1-0242ac120002" solicitacaoPagador: "Informar cartao fidelidade" infoAdicionais: - nome: "quantidade" valor: "2" getCobs1: summary: "Exemplo de retorno da consulta de cobranças 1" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-02T10:00:00Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 2 cobs: - allOf: - $ref: "#/components/examples/cobResponse1/value" - allOf: - $ref: "#/components/examples/cobResponse2/value" - allOf: - $ref: "#/components/examples/cobResponse5/value" - allOf: - $ref: "#/components/examples/cobResponse6/value" - allOf: - $ref: "#/components/examples/cobResponse7/value" getCobs2: summary: "Exemplo de retorno da consulta de cobranças 2" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 cobs: - allOf: - $ref: "#/components/examples/cobResponse1/value" getCobsV1: summary: "Exemplo de retorno da consulta de cobranças com vencimento 1" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 cobs: - allOf: - $ref: "#/components/examples/cobResponse4/value" getPix1: summary: "Exemplo de retorno da consulta de Pix 1" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 2 pix: - allOf: - $ref: "#/components/examples/pixResponse1/value" - allOf: - $ref: "#/components/examples/pixResponse2/value" - allOf: - $ref: "#/components/examples/pixResponse3/value" getLotesCobsV: summary: "Exemplo de retorno da consulta de Pix 1" value: parametros: inicio: "2020-01-01T00:00:00Z" fim: "2020-12-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 2 lotes: - allOf: - $ref: "#/components/examples/loteCobVResponse1/value" - allOf: - $ref: "#/components/examples/loteCobVResponse2/value" getPayloadLocation1: summary: "Exemplo de retorno da consulta de locations 1" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 3 loc: - allOf: - $ref: "#/components/examples/payloadLocationResponse1/value" - allOf: - $ref: "#/components/examples/payloadLocationResponse2/value" - allOf: - $ref: "#/components/examples/payloadLocationResponse3/value" getWebhook1: summary: "Exemplo de retorno da consulta de Webhooks 1" value: parametros: inicio: "2020-04-01T00:00:00Z" fim: "2020-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 webhooks: - allOf: - $ref: "#/components/examples/recWebhookResponse1" getWebhookRec1: summary: "Exemplo de retorno da consulta de Webhooks 1" value: parametros: inicio: "2023-10-01T00:00:00Z" fim: "2024-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 webhooks: - webhookUrl: https://usuario.recebedor.com/api/webhookrec/ criacao: "2023-12-20T12:51:16.485Z" getRec1: summary: "Exemplo de retorno da consulta de recorrências 1" value: parametros: inicio: "2024-04-01T00:00:00Z" fim: "2024-04-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 recs: - idRec: RN1234567820240115abcdefghijk status: APROVADA valor: valorRec: "300.00" vinculo: contrato: "98625023" devedor: cpf: "87734514122" nome: "Fulano de Tal" objeto: "Serviços de Gestão de Imóveis" calendario: dataFinal: "2028-09-01" dataInicial: "2024-02-01" periodicidade: MENSAL politicaRetentativa: NAO_PERMITE loc: criacao: "2023-12-19T12:28:05.230Z" id: 5100 location: pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002 idRec: RN1234567820240115abcdefghijk pagador: codMun: "2673833" cpf: "75633122216" ispbParticipante: "81102623" recebedor: cnpj: "92221288310574" nome: "Imobiliária Bom Sucesso" atualizacao: - data: "2024-01-03T08:30:02.050Z" nome: CRIADA - data: "2024-01-04T09:40:42.210Z" nome: APROVADA getCobR1: summary: "Exemplo de retorno da consulta de cobranças recorrentes 1" value: parametros: inicio: "2024-04-01T00:00:00Z" fim: "2024-12-01T23:59:59Z" paginacao: paginaAtual: 0 itensPorPagina: 100 quantidadeDePaginas: 1 quantidadeTotalDeItens: 1 cobsr: - idRec: RR123456782024061999000566354 txid: 7f733863543b4a16b516d839bd4bc34e calendario: criacao: "2024-05-20" dataDeVencimento: "2024-06-20" valor: original: "50.33" status: ATIVA ajusteDiaUtil: false politicaRetentativa: PERMITE_3R_7D devedor: cep: "63259-740" cidade: "Campinas" email: "beltrano.silva@mail.com" logradouro: "Rua Gonçalves Dias 605" uf: "SP" recebedor: conta: "997182" tipoConta: CORRENTE tentativas: - dataLiquidacao: "2024-06-20" tipo: "AGND" status: AGENDADA endToEndId: E12345678202406201221abcdef12345 atualizacao: - data: "2024-05-21T10:40:16.730Z" status: SOLICITADA - data: "2024-05-21T17:08:00.520Z" status: AGENDADA atualizacao: - data: "2024-05-20T14:47:29.470Z" status: CRIADA - data: "2024-05-21T10:18:20.120Z" status: ATIVA RequisicaoInvalidaCobExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobOperacaoInvalida title: "Cobrança inválida." status: 400 detail: "A requisição que busca alterar ou criar uma cobrança para pagamento imediato não respeita o _schema_ ou está semanticamente errada." violacoes: - razao: "O campo cob.valor.original não respeita o _schema_." propriedade: "cob.valor.original" OperacaoInvalidaCobExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobOperacaoInvalida title: "Operação inválida." status: 400 detail: "A requisição que busca alterar ou criar uma cobrança para pagamento imediato não respeita o _schema_ ou está semanticamente errada." RequisicaoInvalidaCobVExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobVOperacaoInvalida title: "Cobrança inválida." status: 400 detail: "A requisição que busca alterar ou criar uma cobrança com vencimento não respeita o _schema_ ou está semanticamente errada." violacoes: - razao: "O objeto cobv.devedor não respeita o _schema_." propriedade: "cobv.devedor" OperacaoInvalidaCobVExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobVOperacaoInvalida title: "Operação inválida." status: 400 detail: "Cobrança não encontra-se mais com o status ATIVA, somente cobranças ativas podem ser revisadas." OperacaoInvalidaCobRExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobROperacaoInvalida title: "Operação inválida." status: 400 detail: "A cobrança não respeita o schema." violacoes: - razao: "O objeto cobr.calendario não respeita o schema." propriedade: "cobr.calendario" OperacaoInvalidaRecExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/RecOperacaoInvalida title: "Operação inválida." status: 400 detail: "A recorrência não respeita o schema." violacoes: - razao: "O campo rec.calendario.dataInicial não respeita o schema." propriedade: "rec.calendario.dataInicial" OperacaoInvalidaSolicRecExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/SolicRecOperacaoInvalida title: "Operação inválida." status: 400 detail: "A solicitação de confirmação de recorrência não respeita o schema." violacoes: - razao: "O objeto solicrec.pagador não respeita o schema." propriedade: "solicrec.pagador" RequisicaoInvalidaCobPayloadExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobPayloadNaoEncontrado title: "Cobrança não encontrada." status: 404 detail: "A cobrança em questão não foi encontrada para a location requisitada." RequisicaoInvalidaRecPayloadExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/RecPayloadOperacaoInvalida title: "Recorrência não encontrada." status: 400 detail: "A recorrência em questão encontra-se encerrada." RequisicaoInvalidaCobRTentativaExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/CobROperacaoInvalida title: "Cobrança não encontrada." status: 404 detail: "A cobrança em questão não foi encontrada para o txid informado." RequisicaoInvalidaLoteCobVExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/LoteCobVOperacaoInvalida title: "Lote de cobranças inválido." status: 400 detail: "A requisição que busca alterar ou criar um lote de cobranças com vencimento não respeita o _schema_ ou está semanticamente errada." violacoes: - razao: "O objeto loteCobV.cobsV não respeita o _schema_." propriedade: "loteCobV.cobsV" - razao: "O campo loteCobV.descricao não respeita o _schema_." propriedade: "loteCobV.descricao" RequisicaoInvalidaDevolucaoExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/PixDevolucaoInvalida title: "Devolução inválida." status: 400 detail: "A presente requisição de devolução não respeita o _schema_ ou não faz sentido semanticamente." RequisicaoInvalidaWebhookExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/WebhookOperacaoInvalida title: "Webhook inválido." status: 400 detail: "A presente requisição busca criar um webhook sem respeitar o _schema_ ou, ainda, com sentido semanticamente inválido." RequisicaoInvalidaLocationExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/PayloadLocationOperacaoInvalida title: "PayloadLocation inválido." status: 400 detail: "A presente requisição busca criar uma location sem respeitar o _schema_ estabelecido." AcessoNegadoExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/AcessoNegado title: "Acesso Negado" status: 403 detail: "Requisição de participante autenticado que viola alguma regra de autorização." NaoEncontradoExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/NaoEncontrado title: "Não Encontrado" status: 404 detail: "Entidade não encontrada." ServicoIndisponivelExample1: summary: "Exemplo de erro da requisição 1" value: type: https://pix.bcb.gov.br/api/v2/error/ServicoIndisponivel title: "Serviço Indisponível" status: 503 detail: "Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento." requestBodies: CobBody: description: "Dados para geração da cobrança imediata." required: true content: "application/json": schema: $ref: "#/components/schemas/CobSolicitada" examples: exemplo1: $ref: "#/components/examples/cobBody2" exemplo2: $ref: "#/components/examples/cobBody6" exemplo3: $ref: "#/components/examples/cobBody8" exemplo4: $ref: "#/components/examples/cobBody9" CobRBody: description: "Dados para geração da cobrança recorrente." required: true content: "application/json": schema: $ref: "#/components/schemas/CobRSolicitada" examples: exemplo1: $ref: "#/components/examples/cobRBody1" CobVBody: description: "Dados para geração da cobrança com vencimento." required: true content: "application/json": schema: $ref: "#/components/schemas/CobVSolicitada" examples: exemplo1: $ref: "#/components/examples/cobBody1" LoteCobVBody: description: "Dados para geração de lote de cobranças com vencimento." required: true content: "application/json": schema: required: ["descricao", "cobsv"] properties: descricao: type: "string" title: "Descrição do lote" cobsv: type: "array" items: allOf: - type: "object" required: ["txid"] properties: txid: $ref: "#/components/schemas/TxId" - $ref: "#/components/schemas/CobVSolicitada" examples: exemplo1: $ref: "#/components/examples/loteCobVBody1" LoteCobVBodyRevisado: description: "Dados para geração de lote de cobranças com vencimento." required: true content: "application/json": schema: properties: descricao: type: "string" title: "Descrição do lote" cobsv: type: "array" items: allOf: - type: "object" required: ["txid"] properties: txid: $ref: "#/components/schemas/TxId" - $ref: "#/components/schemas/CobVRevisada" examples: exemplo1: $ref: "#/components/examples/loteCobVBodyRevisado1" CobBodyRevisada: description: "Dados para geração da cobrança." required: true content: "application/json": schema: $ref: "#/components/schemas/CobRevisada" examples: exemplo1: $ref: "#/components/examples/cobBody3" exemplo2: $ref: "#/components/examples/cobBody4" exemplo3: $ref: "#/components/examples/cobBody5" CobRBodyRevisada: description: "Dados para geração da cobrança." required: true content: "application/json": schema: $ref: "#/components/schemas/CobRRevisada" examples: exemplo1: $ref: "#/components/examples/cobRBody2" CobVBodyRevisada: description: "Dados para geração da cobrança." required: true content: "application/json": schema: $ref: "#/components/schemas/CobVRevisada" examples: exemplo1: $ref: "#/components/examples/cobBody7" exemplo2: $ref: "#/components/examples/cobBody4" exemplo3: $ref: "#/components/examples/cobBody5" PayloadLocationBody: description: "Dados para geração da location." required: true content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationSolicitada" examples: exemplo1: $ref: "#/components/examples/payloadLocationBody1" PayloadLocationRecBody: description: "Dados para geração da location." required: true content: "application/json": schema: $ref: "#/components/schemas/PayloadLocationRecSolicitada" DevolucaoBody: description: "Dados para pedido de devolução." required: true content: "application/json": schema: $ref: "#/components/schemas/DevolucaoSolicitada" examples: exemplo1: $ref: "#/components/examples/devolucaoSolicitada1" WebhookConfigBody: required: true content: "application/json": schema: $ref: "#/components/schemas/WebhookSolicitado" examples: exemplo1: $ref: "#/components/examples/webhookBody1" WebhookRecConfigBody: required: true content: "application/json": schema: $ref: "#/components/schemas/WebhookRecSolicitado" examples: exemplo1: $ref: "#/components/examples/recWebhookBody1" WebhookCobRConfigBody: required: true content: "application/json": schema: $ref: "#/components/schemas/WebhookCobRSolicitado" examples: exemplo1: $ref: "#/components/examples/cobRWebhookBody1" SolicRecBody: description: "Dados para geração da solicitação da recorrência." content: "application/json": schema: $ref: "#/components/schemas/SolicRecSolicitada" examples: exemplo1: $ref: "#/components/examples/solicRecBody1" SolicRecBodyRevisada: description: "Dados para revisão da solicitação da recorrência." content: "application/json": schema: $ref: "#/components/schemas/SolicRecRevisada" examples: exemplo1: $ref: "#/components/examples/solicRecBody2" RecBody: description: "Dados para geração da recorrência." content: "application/json": schema: $ref: "#/components/schemas/RecSolicitada" examples: exemplo1: $ref: "#/components/examples/recBody1" exemplo2: $ref: "#/components/examples/recBody2" RecBodyRevisada: description: "Dados para revisão da recorrência." content: "application/json": schema: $ref: "#/components/schemas/RecRevisada" examples: retorno1: $ref: "#/components/examples/recBody3" WebhookPixBody: description: "Dados para notificação dos Pix." required: true content: "application/json": schema: properties: pix: type: "array" items: $ref: "#/components/schemas/Pix" example: - allOf: - $ref: "#/components/examples/pixWebhook1/value" - allOf: - $ref: "#/components/examples/pixWebhook2/value" WebhookRecBody: description: "Dados para notificação." required: true content: "application/json": schema: properties: recs: type: "array" items: $ref: "#/components/schemas/RecNotification" example: $ref: "#/components/examples/recWebhookNotification1/value" WebhookCobRBody: description: "Dados para notificação." required: true content: "application/json": schema: properties: cobsr: type: "array" items: $ref: "#/components/schemas/CobRNotification" example: $ref: "#/components/examples/cobRWebhookNotification1/value" schemas: TxId: type: "string" title: "Id da Transação" description: | # Identificador da transação O campo `txid` determina o identificador da transação. O objetivo desse campo é ser um elemento que possibilite ao PSP do recebedor apresentar ao usuário recebedor a funcionalidade de conciliação de pagamentos. Na pacs.008, é referenciado como `TransactionIdentification ` ou `idConciliacaoRecebedor`. Em termos de fluxo de funcionamento, o txid é lido pelo aplicativo do PSP do pagador e, depois de confirmado o pagamento, é enviado para o SPI via pacs.008. Uma pacs.008 também é enviada ao PSP do recebedor, contendo, além de todas as informações usuais do pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP do recebedor está apto a se comunicar com o usuário recebedor, informando que um pagamento específico foi liquidado. O txid é criado exclusivamente pelo usuário recebedor e está sob sua responsabilidade. O txid, no contexto de representação de uma cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao PSP recebedor validar essa regra na API Pix. pattern: "[a-zA-Z0-9]{26,35}" EndToEndId: type: "string" title: "Id fim a fim da transação" description: "EndToEndIdentification que transita na PACS002, PACS004 e PACS008" pattern: "[a-zA-Z0-9]{32}" minLength: 32 maxLength: 32 DevolucaoId: type: "string" title: "Id da Devolução" description: "Id gerado pelo cliente para representar unicamente uma devolução." pattern: "[a-zA-Z0-9]{1,35}" DevolucaoSolicitadaNatureza: type: "string" title: "Natureza da Devolução Solicitada" description: | Indica qual é a natureza da devolução solicitada. Uma solicitação de devolução pelo usuário recebedor pode ser relacionada a um Pix comum (com código: `MD06` da pacs.004), ou a um Pix de Saque ou Troco (com códigos possíveis: `MD06` e `SL02` da pacs.004). Na ausência deste campo a natureza deve ser interpretada como sendo de um Pix comum (`ORIGINAL`). As naturezas são assim definidas: - `ORIGINAL`: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix comum ou ao valor da compra em um Pix Troco (`MD06`); - `RETIRADA`: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix Saque ou ao valor do troco em um Pix Troco (`SL02`). Os valores de devoluções são sempre limitados aos valores máximos a seguir: - Pix comum: o valor da devolução é limitado ao valor do próprio Pix (a natureza nesse caso deve ser: ORIGINAL); - Pix Saque: o valor da devolução é limitado ao valor da retirada (a natureza nesse caso deve ser: RETIRADA); e - Pix Troco: o valor da devolução é limitado ao valor relativo à compra ou ao troco: - Quando a devolução for referente à compra, o valor limita-se ao valor da compra (a natureza nesse caso deve ser ORIGINAL); e - Quando a devolução for referente ao troco, o valor limita-se ao valor do troco (a natureza nesse caso deve ser RETIRADA). enum: - "ORIGINAL" - "RETIRADA" DevolucaoNatureza: type: "string" title: "Natureza da Devolução" description: | Indica qual é a natureza da devolução. Uma devolução pode ser relacionada a um Pix comum (com códigos possíveis: `MD06`, `BE08` e `FR01` da pacs.004 e `REFU` da pacs.008), ou a um Pix de Saque ou Troco (com códigos possíveis: `MD06` e `SL02` da pacs.004). Na ausência deste campo a natureza deve ser interpretada como sendo de um Pix comum (`ORIGINAL`). As naturezas são assim definidas: - `ORIGINAL`: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix comum ou ao valor da compra em um Pix Troco (`MD06`); - `RETIRADA`: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix Saque ou ao valor do troco em um Pix Troco (`SL02`); - `MED_OPERACIONAL`: quando a devolução ocorre no âmbito do MED por motivo de falha operacional e se refere a um Pix comum (`BE08`); - `MED_FRAUDE`: quando a devolução ocorre no âmbito do MED por fundada suspeita de fraude e se refere a um Pix comum (`FR01`). - `MED_PIX_AUTOMATICO`: reembolso total ou parcial ao participante do usuário pagador no âmbito do MED (Mecanismo Especial de Devolução) para o Pix Automático pela utilização de recursos próprios para ressarcimento do usuário pagador.(`REFU`); Os valores de devoluções são sempre limitados aos valores máximos a seguir: - Pix comum: o valor da devolução é limitado ao valor do próprio Pix (a natureza nesse caso pode ser: ORIGINAL, MED_OPERACIONAL ou MED_FRAUDE); - Pix Saque: o valor da devolução é limitado ao valor da retirada (a natureza nesse caso deve ser: RETIRADA); e - Pix Troco: o valor da devolução é limitado ao valor relativo à compra ou ao troco: - Quando a devolução for referente à compra, o valor limita-se ao valor da compra (a natureza nesse caso deve ser ORIGINAL); e - Quando a devolução for referente ao troco, o valor limita-se ao valor do troco (a natureza nesse caso deve ser RETIRADA). enum: - "ORIGINAL" - "RETIRADA" - "MED_OPERACIONAL" - "MED_FRAUDE" - "MED_PIX_AUTOMATICO" DevolucaoNaturezaPixAutomatico: type: "string" title: "Natureza da Devolução" description: | Indica qual é a natureza da devolução. Uma devolução pode ser relacionada a um Pix comum (com códigos possíveis: `MD06` e `FR01` da pacs.004 e `REFU` da pacs.008). Na ausência deste campo a natureza deve ser interpretada como sendo de um Pix comum (`ORIGINAL`). As naturezas são assim definidas: - `ORIGINAL`: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix comum (`MD06`); - `MED_FRAUDE`: quando a devolução ocorre no âmbito do MED (Mecanismo Especial de Devolução) por fundada suspeita de fraude e se refere a um Pix comum (`FR01`). - `MED_PIX_AUTOMATICO`: reembolso total ou parcial ao participante do usuário pagador no âmbito do MED (Mecanismo Especial de Devolução) para o Pix Automático pela utilização de recursos próprios para ressarcimento do usuário pagador.(`REFU`); Os valores de devoluções são sempre limitados aos valores máximos a seguir: - Pix comum: o valor da devolução é limitado ao valor do próprio Pix (a natureza nesse caso pode ser: ORIGINAL, MED_PIX_AUTOMATICO ou MED_FRAUDE); enum: - "ORIGINAL" - "MED_PIX_AUTOMATICO" - "MED_FRAUDE" PayloadLocationId: type: "integer" format: "int64" title: "Id da location" description: "Identificador da location a ser informada na criação da cobrança ." readOnly: true PayloadLocationRecId: type: "integer" format: "int64" title: "Id da location" description: "Identificador da location a ser informada na criação de uma recorrência ." Revisao: type: "integer" format: "int32" title: "Revisão" description: | # O campo `revisao` Denota a revisão da cobrança. Sempre começa em zero. Sempre varia em acréscimos de 1. O incremento em uma cobrança deve ocorrer sempre que um objeto da cobrança em questão for alterado. O campo `loc` é uma exceção a esta regra. Se em uma determinada alteração em uma cobrança, o único campo alterado for o campo `loc`, então esta operação não incrementa a revisão da cobrança. O campo `loc` não ocasiona uma alteração na cobrança em si. Não é necessário armazenar histórico das alterações do campo `loc` para uma determinada cobrança. Para os outros campos da cobrança, registra-se histórico. readOnly: true PessoaFisica: type: "object" required: ["cpf", "nome"] title: "Pessoa Física" properties: cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "CPF do usuário." nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 200 PessoaJuridica: type: "object" required: ["cnpj", "nome"] title: "Pessoa Jurídica" properties: cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "CNPJ do usuário." nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 200 PessoaFisicaRecorrencia: type: "object" required: ["cpf", "nome"] title: "Pessoa Física" properties: cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "CPF do usuário." nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 140 PessoaJuridicaRecorrencia: type: "object" required: ["cnpj", "nome"] title: "Pessoa Jurídica" properties: cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "CNPJ do usuário." nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 140 CPF: type: "object" required: ["cpf"] title: "Pessoa Física" properties: cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "CPF do usuário." CNPJ: type: "object" required: ["cnpj"] title: "Pessoa Jurídica" properties: cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "CNPJ do usuário." DadosComplementaresPessoa: type: "object" properties: logradouro: type: "string" title: "Logradouro" description: "Logradouro do usuário." maxLength: 200 cidade: type: "string" title: "Cidade" description: "Cidade do usuário." maxLength: 200 uf: type: "string" title: "UF" description: "UF do usuário." maxLength: 2 cep: type: "string" title: "CEP" description: "CEP do usuário." maxLength: 8 DadosDevedor: type: "object" properties: devedor: description: "O objeto devedor organiza as informações sobre o devedor da cobrança." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" allOf: - type: "object" properties: email: type: "string" title: "Email" description: "Email do usuário." - $ref: "#/components/schemas/DadosComplementaresPessoa" DadosDevedorRecorrencia: type: "object" properties: devedor: description: "O objeto devedor organiza as informações sobre o devedor da recorrência." allOf: - type: "object" properties: email: type: "string" title: "Email" description: "Email do usuário." - $ref: "#/components/schemas/DadosComplementaresPessoa" DadosRecebedor: type: "object" required: ["logradouro", "cidade", "uf", "cep"] properties: recebedor: description: "O objeto recebedor organiza as informações sobre o credor da cobrança." oneOf: - $ref: "#/components/schemas/PessoaFisica" - type: "object" allOf: - $ref: "#/components/schemas/PessoaJuridica" - type: "object" properties: nomeFantasia: type: "string" title: "Nome fantasia" description: "Nome fantasia." maxLength: 200 allOf: - required: ["logradouro", "cidade", "uf", "cep"] - $ref: "#/components/schemas/DadosComplementaresPessoa" DadosBancarios: type: "object" required: ["conta", "ispbParticipante"] properties: conta: type: "string" title: "Conta do Usuário Pagador" description: "Número da conta do usuário pagador." maxLength: 20 ispbParticipante: type: "string" title: "ISPB do usuário pagador." description: "ISPB do usuário pagador." pattern: "\\d{8}" agencia: type: "string" title: "Agência do Usuário Pagador" description: "Número da agência do usuário pagador." maxLength: 4 DadosBancariosRecebedor: type: "object" required: ["conta", "tipoConta"] properties: conta: type: "string" description: "Número da conta do usuário recebedor." maxLength: 20 tipoConta: type: "string" title: "Tipo da conta do usuário recebedor" description: "Tipo da conta do usuário recebedor." enum: - "CORRENTE" - "POUPANCA" - "PAGAMENTO" agencia: type: "string" description: "Número da agência do usuário recebedor." maxLength: 4 DadosPagadorRec: type: "object" title: "Dados do Pagador" required: ["ispbParticipante"] properties: pagador: allOf: - type: "object" properties: ispbParticipante: type: "string" title: "ISPB do PSP pagador." description: "ISPB do PSP pagador." pattern: "\\d{8}" - type: "object" properties: codMun: title: "Código do município" description: | Código baseado na Tabela de Códigos de Municípios do __[IBGE](https://www.ibge.gov.br/explica/codigos-dos-municipios.php)__ que apresenta a lista dos municípios brasileiros associados a um código composto de 7 dígitos, sendo os dois primeiros referentes ao código da Unidade da Federação. type: "string" pattern: "/^\\d{7}$/" oneOf: - $ref: "#/components/schemas/CPF" - $ref: "#/components/schemas/CNPJ" WebhookSolicitado: type: "object" required: ["webhookUrl"] title: "Webhook" properties: webhookUrl: type: string format: uri example: https://pix.example.com/api/webhook/ WebhookCompleto: type: "object" required: ["webhookUrl", "cnpj", "criacao"] title: "Webhook" properties: webhookUrl: type: string format: uri example: https://pix.example.com/api/webhook/ cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que o webhook foi cadastrado. Respeita RFC 3339." readOnly: true WebhookRecBase: type: "object" required: ["webhookUrl"] title: "Webhook Base" properties: webhookUrl: type: "string" title: "URL Webhook" format: uri example: https://pix.example.com/api/webhookrec/ WebhookRecCompleto: type: "object" required: ["webhookUrl"] title: "Webhook Base" properties: webhookUrl: type: "string" title: "URL Webhook" format: uri example: https://pix.example.com/api/webhookrec/ criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que o webhook foi cadastrado. Respeita RFC 3339." readOnly: true WebhookCobRCompleto: type: "object" required: ["webhookUrl"] title: "Webhook Base" properties: webhookUrl: type: "string" title: "URL Webhook" format: uri example: https://pix.example.com/api/webhookrec/ criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que o webhook foi cadastrado. Respeita RFC 3339." readOnly: true InfoBaseAgenciaConta: type: "object" required: ["agencia", "conta"] title: "Informações de Agência e Conta" properties: agencia: type: "string" title: "Agência" description: "Número da agência do usuário." maxLength: 4 conta: type: "string" title: "Conta Corrente" description: "Número da conta do usuário." maxLength: 20 InfoBaseChave: type: "object" required: ["tipo", "chave"] title: "Informação de Chave DICT" properties: tipo: type: "string" title: "Tipo do Objeto" enum: - "pix" chave: type: "string" title: "Chave DICT do recebedor" description: | # Formato do campo chave * O campo chave determina a chave Pix registrada no DICT que será utilizada para a cobrança. Essa chave será lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornará a informação que identificará o recebedor da cobrança. * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. * O formato das chaves pode ser encontrado na seção "Formatação das chaves do DICT no BR Code" do [Manual de Padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). maxLength: 77 WebhookRecSolicitado: type: "object" title: "Webhook Solicitado" allOf: - $ref: "#/components/schemas/WebhookRecBase" WebhookCobRSolicitado: type: "object" required: ["webhookUrl"] title: "Webhook Base" properties: webhookUrl: type: "string" title: "URL Webhook" format: uri example: https://pix.example.com/api/webhookrec/ CobExpiracao: type: "object" title: "Expiração" properties: expiracao: type: "integer" format: "int32" title: "Tempo de vida da cobrança, especificado em segundos." description: | Tempo de vida da cobrança, especificado em segundos a partir da data de criação (Calendario.criacao) example: "3600" default: "86400" CobDataDeVencimento: type: "object" title: "Data de Vencimento" required: ["dataDeVencimento"] properties: dataDeVencimento: type: "string" format: "date" title: "Data de vencimento da cobrança" description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. É a data de vencimento da cobrança. A cobrança pode ser honrada até esse dia, inclusive, em qualquer horário do dia." example: "2020-04-01" validadeAposVencimento: type: "integer" format: "int32" title: "Validade após vencimento" description: | Trata-se da quantidade de dias corridos após calendario.dataDeVencimento, em que a cobrança poderá ser paga. Sempre que a data de vencimento cair em um fim de semana ou em um feriado para o usuário pagador, ela deve ser automaticamente prorrogada para o primeiro dia útil subsequente. Todos os campos que façam referência a esta data (`validadeAposVencimento`; `desconto`; `juros` e `multa`) devem assumir essa prorrogação, quando for o caso. Para ilustrar o funcionamento, seguem alguns exemplos, onde: - ``(#)`` representa a data de vencimento; - ``(*)`` representa a data ajustada em função de dias não úteis; - os ``()`` correspondem aos dias adicionais de validade para o pagamento. Exemplo A: ```txt dataDeVencimento: 2020-10-20, terça-feira. validadeAposVencimento: 4 Tenta-se pagar no dia 2020-10-20, terça: aceito. (#)(*) Tenta-se pagar no dia 2020-10-21, quarta: aceito. (1) Tenta-se pagar no dia 2020-10-22, quinta: aceito. (2) Tenta-se pagar no dia 2020-10-23, sexta: aceito. (3) Tenta-se pagar no dia 2020-10-24, sábado: aceito. Tenta-se pagar no dia 2020-10-25, domingo: aceito. (Feriado) Tenta-se pagar no dia 2020-10-26, segunda: aceito. (4) Tenta-se pagar no dia 2020-10-27, terça: negado. ``` Exemplo B: ```txt dataDeVencimento: 2020-12-25, sexta-feira, feriado. validadeAposVencimento: 0 Tenta-se pagar no dia 2020-12-25, sexta: aceito. (#)(Feriado) Tenta-se pagar no dia 2020-12-26, sábado: aceito. Tenta-se pagar no dia 2020-12-27, domingo: aceito. Tenta-se pagar no dia 2020-12-28, segunda: aceito. (*) Tenta-se pagar no dia 2020-12-29, terça: negado. ``` Exemplo C: ```txt dataDeVencimento: 2020-12-25, sexta-feira, feriado. validadeAposVencimento: 1 Tenta-se pagar no dia 2020-12-25, sexta: aceito. (#)(Feriado) Tenta-se pagar no dia 2020-12-26, sábado: aceito. Tenta-se pagar no dia 2020-12-27, domingo: aceito. Tenta-se pagar no dia 2020-12-28, segunda: aceito. (*) Tenta-se pagar no dia 2020-12-29, terça: aceito. (1) Tenta-se pagar no dia 2020-12-30, quarta: negado. ``` Exemplo D: ```txt dataDeVencimento: 2020-12-25, sexta-feira, feriado. validadeAposVencimento: 3 Tenta-se pagar no dia 2020-12-25, sexta: aceito. (#)(Feriado) Tenta-se pagar no dia 2020-12-26, sábado: aceito. Tenta-se pagar no dia 2020-12-27, domingo: aceito. Tenta-se pagar no dia 2020-12-28, segunda: aceito. (*) Tenta-se pagar no dia 2020-12-29, terça: aceito. (1) Tenta-se pagar no dia 2020-12-30, quarta: aceito. (2) Tenta-se pagar no dia 2020-12-31, quinta: aceito. (3) Tenta-se pagar no dia 2021-01-01, sexta: negado. ``` Exemplo E: ```txt dataDeVencimento: 2020-12-25, sexta-feira, feriado. validadeAposVencimento: 4 Tenta-se pagar no dia 2020-12-25, sexta: aceito. (#)(Feriado) Tenta-se pagar no dia 2020-12-26, sábado: aceito. Tenta-se pagar no dia 2020-12-27, domingo: aceito. Tenta-se pagar no dia 2020-12-28, segunda: aceito. (*) Tenta-se pagar no dia 2020-12-29, terça: aceito. (1) Tenta-se pagar no dia 2020-12-30, quarta: aceito. (2) Tenta-se pagar no dia 2020-12-31, quinta: aceito. (3) Tenta-se pagar no dia 2021-01-01, sexta: aceito. (Feriado) Tenta-se pagar no dia 2021-01-02, sábado: aceito. Tenta-se pagar no dia 2021-01-03, domingo: aceito. Tenta-se pagar no dia 2021-01-04, segunda: aceito. (4) Tenta-se pagar no dia 2021-01-05, terça: negado. ``` Exemplo F: ```txt dataDeVencimento: 2021-08-27, sexta-feira. validadeAposVencimento: 5 Tenta-se pagar no dia 2021-08-27, sexta: aceito. (#)(*) Tenta-se pagar no dia 2021-08-28, sábado: aceito. (1) Tenta-se pagar no dia 2021-08-29, domingo: aceito. (2) Tenta-se pagar no dia 2021-08-30, segunda: aceito. (3) Tenta-se pagar no dia 2021-08-31, terça: aceito. (4) Tenta-se pagar no dia 2021-09-01, quarta: aceito. (5) Tenta-se pagar no dia 2021-09-02, quinta: negado. ``` Exemplo G: ```txt dataDeVencimento: 2021-08-28, sábado. validadeAposVencimento: 5 Tenta-se pagar no dia 2021-08-28, sábado: aceito. (#) Tenta-se pagar no dia 2021-08-29, domingo: aceito. Tenta-se pagar no dia 2021-08-30, segunda: aceito. (*) Tenta-se pagar no dia 2021-08-31, terça: aceito. (1) Tenta-se pagar no dia 2021-09-01, quarta: aceito. (2) Tenta-se pagar no dia 2021-09-02, quinta: aceito. (3) Tenta-se pagar no dia 2021-09-03, sexta: aceito. (4) Tenta-se pagar no dia 2021-09-04, sabado: aceito. Tenta-se pagar no dia 2021-09-05, domingo: aceito. Tenta-se pagar no dia 2021-09-06, segunda: aceito. (5) ``` default: 30 CobApresentacao: type: "object" title: "Apresentação" required: ["apresentacao"] properties: apresentacao: type: "string" format: "date-time" title: "Timestamp de apresentação do QR Code" description: "Timestamp que indica o momento em que o payload JSON que representa a cobrança foi recuperado. Ou seja, idealmente, é o momento em que o usuário realizou a captura do QR Code para verificar os dados de pagamento. Respeita o formato definido na RFC 3339." CobCriacao: type: "object" title: "Criação" required: ["criacao"] properties: criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Timestamp que indica o momento em que foi criada a cobrança. Respeita o formato definido na RFC 3339." CobVValor: type: "object" title: "Valor da cobrança com vencimento" description: "Valores monetários." properties: original: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor original da cobrança." multa: type: "object" required: ["modalidade", "valorPerc"] title: "Multa aplicada" description: "Multa aplicada à cobrança" properties: modalidade: type: "integer" format: "int32" title: "Modalidade da multa" minimum: 1 maximum: 2 description: | ##### Modalidade da multa, conforme tabela de domínios.
DescriçãoDomínio
Valor Fixo1
Percentual2
valorPerc: type: "string" title: "Valor da multa absoluta" description: 'Multa do documento em valor absoluto ou percentual, conforme "valor.multa.modalidade".' pattern: "\\d{1,10}\\.\\d{2}" juros: type: "object" required: ["modalidade", "valorPerc"] title: "Juro aplicado" description: "Juro aplicado à cobrança" properties: modalidade: type: "integer" format: "int32" minimum: 1 maximum: 8 title: "Modalidade de juros" description: | ##### Modalidade de juros, conforme tabela de domínios.
DescriçãoDomínio
Valor (dias corridos)1
Percentual ao dia (dias corridos)2
Percentual ao mês (dias corridos)3
Percentual ao ano (dias corridos)4
Valor (dias úteis)5
Percentual ao dia (dias úteis)6
Percentual ao mês (dias úteis)7
Percentual ao ano (dias úteis)8
valorPerc: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" abatimento: title: "Abatimento aplicado" required: ["modalidade", "valorPerc"] description: "Abatimento aplicado à cobrança" properties: modalidade: type: "integer" format: "int32" minimum: 1 maximum: 2 title: "Modalidade de abatimentos" description: | ##### Modalidade de abatimentos, conforme tabela de domínios.
DescriçãoDomínio
Valor Fixo1
Percentual2
valorPerc: type: "string" title: "Abatimentos" description: "Abatimentos ou outras deduções aplicadas ao documento, em valor absoluto ou percentual do valor original do documento." pattern: "\\d{1,10}\\.\\d{2}" desconto: title: "Descontos aplicados" required: ["modalidade"] description: "Descontos aplicados à cobrança" allOf: - type: "object" properties: modalidade: type: "integer" format: "int32" minimum: 1 maximum: 6 title: "Modalidade de descontos" description: | ##### Modalidade de desconto, conforme tabela de domínios.
DescriçãoDomínio
Valor Fixo até a[s] data[s] informada[s]1
Percentual até a data informada2
Valor por antecipação dia corrido3
Valor por antecipação dia útil4
Percentual por antecipação dia corrido5
Percentual por antecipação dia útil6
oneOf: - type: "object" properties: descontoDataFixa: title: "Lista de Descontos" description: "Descontos absolutos aplicados à cobrança." type: "array" minItems: 1 maxItems: 3 uniqueItems: true items: required: ["data", "valorPerc"] allOf: - properties: data: title: "Data limite para o desconto absoluto da cobrança" description: 'Descontos por pagamento antecipado, com data fixa. Matriz com até três elementos, sendo que cada elemento é composto por um par "data e valorPerc", para estabelecer descontos percentuais ou absolutos, até aquela data de pagamento. Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. A data de desconto obrigatoriamente deverá ser menor ou igual à data de vencimento da cobrança.' type: "string" format: "date" example: "2020-04-01" - properties: valorPerc: type: "string" title: "Valor do desconto absoluto" description: "Desconto em valor absoluto ou percentual por dia, útil ou corrido, conforme valor.desconto.modalidade" pattern: "\\d{1,10}\\.\\d{2}" - type: "object" required: ["valorPerc"] properties: valorPerc: type: "string" title: "Abatimentos" description: "Abatimentos ou outras deduções aplicadas ao documento, em valor absoluto ou percentual do valor original do documento." pattern: "\\d{1,10}\\.\\d{2}" CobValor: type: "object" title: "Valor da cobrança imediata" description: "valores monetários referentes à cobrança." properties: original: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor original da cobrança." modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 title: "Modalidade de alteração" description: "Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador." retirada: description: | É uma estrutura opcional relacionada ao conceito de recebimento de numerário. Apenas um agrupamento por vez é permitido, quando há `saque` não há `troco` e vice-versa. Quando uma cobrança imediata tem uma estrutura de `retirada` ela deixa de ser considerada Pix comum e passa à categoria de Pix Saque ou Pix Troco. Para que o preenchimento do objeto `retirada` seja considerado válido as seguintes regras se aplicam: - os campos `modalidadeAgente` e `prestadorDoServicoDeSaque` são de **preenchimento obrigatório**; - quando o `saque` estiver presente a cobrança deve respeitar as seguintes condições: - O campo `valor.original` deve ser preenchido com **valor igual a 0.00 (zero)**; - O campo `valor.modalidadeAlteracao` deve possuir o valor 0 (zero) explicitamente, ou implicitamente (pelo não preenchimento). - quando o `troco` estiver presente a cobrança deve respeitar as seguintes condições: - O campo `valor.original` deve ser preenchido com **valor maior que 0.00 (zero)**; - O campo `valor.modalidadeAlteracao` deve possuir o valor 0 (zero) explicitamente, ou implicitamente (pelo não preenchimento). **IMPORTANTE**: Quando usados o `saque` ou `troco` não será permitida a alteração do `valor.original` recebido. Na presença de `saque` ou `troco` o recebimento do campo `valor.modalidadeAlteracao` com valor 1 (um) é considerado erro. #### Exemplos válidos: Considerando os campos da estrutura `valor` e o predicado 'presente' cujo resultado é verdade quando a estrutura apontada é encontrada temos: - **uma cobrança com valor fixo** (condições: valor.original > 0 && valor.modalidadeAlteração = 0 && !presente(valor.retirada)) ``` ... "valor": { "original": "10.00" }, ... ``` - **uma cobrança com valor alterável** (condições: valor.original >= 0.00 && modalidadeAlteração = 1 && !presente(valor.retirada)) ``` ... "valor": { "original": "10.00", "modalidadeAlteracao": 1 }, ``` - **saque com valor fixo** (condições: valor.original = 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.saque) && valor.retirada.saque.valor > 0 && valor.retirada.saque.modalidadeAlteracao = 0) ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor alterável** (condições: valor.original = 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.saque) && valor.retirada.saque.valor >= 0 && valor.retirada.saque.modalidadeAlteracao = 1) ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **cobrança com troco fixo** (condições: valor.original > 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.troco) && valor.retirada.troco.valor > 0 && valor.retirada.troco.modalidadeAlteracao = 0) ``` ... "valor": { "original": "10.00", "retirada": { "troco": { "valor": "5.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **cobrança com troco alterável** (condições: valor.original > 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.troco) && valor.retirada.troco.valor >= 0 && valor.retirada.troco.modalidadeAlteracao = 1) ``` ... "valor": { "original": "10.00", "retirada": { "troco": { "valor": "0.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` #### Exemplos inválidos: Abaixo alguns exemplos que **não são válidos**. Convém observar que esta listagem não tem pretensão de ser completa, sendo tão somente uma referência para alguns erros possíveis. - **saque sem `modalidadeAgente` e `prestadorDoServicoDeSaque`** ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00" } } }, ... ``` - **cobrança com saque e troco juntos** (não pode ter os dois ao mesmo tempo) ``` ... "valor": { "original": "100.00", "retirada": { "saque": { "valor": "50.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" }, "troco": { "valor": "30.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor.original maior que 0.00 (zero)** (saque requer valor.original = 0.00) ``` ... "valor": { "original": "10.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **troco com valor.original igual a 0.00 (zero)** (para haver troco tem que haver valor.original > 0.00) ``` ... "valor": { "original": "0.00", "retirada": { "troco": { "valor": "5.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor.original alterável** (não se pode alterar o valor.original na presença do saque) ``` ... "valor": { "original": "0.00", "modalidadeAlteracao": 1, "retirada": { "saque": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **troco com valor.original alterável** (não se pode alterar o valor.original na presença do troco) ``` ... "valor": { "original": "0.01", "modalidadeAlteracao": 1, "retirada": { "troco": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGTOT", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` title: "Informações de retirada" type: "object" oneOf: - type: "object" properties: saque: type: "object" title: "Saque" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] description: "Informações relacionadas ao saque" properties: valor: type: "string" title: "Valor do saque" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do saque efetuado" modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 default: 0 title: "Modalidade de alteração do saque" description: "Modalidade de alteração de valor do saque. Quando não preenchido o valor assumido é o 0 (zero)." modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
AGPSSAgente Facilitador de Serviço de Saque (ATENÇÃO: no mapeamento para o campo 'modalidadeAgente', da pacs.008, esse valor deve ser substituído por AGFSS)
enum: - "AGTEC" - "AGTOT" - "AGPSS" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" - type: "object" properties: troco: type: "object" title: "Troco" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] description: "Informações relacionadas ao troco" properties: valor: type: "string" title: "Valor do troco" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do troco efetuado" modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 default: 0 title: "Modalidade de alteração do troco" description: "Modalidade de alteração de valor do troco. Quando não preenchido o valor assumido é o 0 (zero)." modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
enum: - "AGTEC" - "AGTOT" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" CobPayloadValor: type: "object" title: "Valor da cobrança imediata retornada pelo payload" required: ["original"] description: "Todos os campos que indicam valores monetários obedecem ao pattern \\d{1,10}\\.\\d{2}. O separador decimal é o caractere ponto. Não é aplicável utilizar separador de milhar. Exemplos de valores aderentes ao padrão: “1.00”, “123.99”, “123456789.23" properties: original: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor original da cobrança." modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 title: "Modalidade de alteração" description: "Trata-se de um campo que determina se o valor final do documento pode ser alterado pelo pagador. Na ausência desse campo, assume-se que não se pode alterar o valor do documento de cobrança, ou seja, assume-se o valor 0. Se o campo estiver presente e com valor 1, então está determinado que o valor final da cobrança pode ter seu valor alterado pelo pagador." retirada: description: | É uma estrutura opcional relacionada ao conceito de recebimento de numerário. Apenas um agrupamento por vez é permitido, quando há `saque` não há `troco` e vice-versa. Quando uma cobrança imediata tem uma estrutura de `retirada` ela deixa de ser considerada Pix comum e passa à categoria de Pix Saque ou Pix Troco. Para que o preenchimento do objeto `retirada` seja considerado válido as seguintes regras se aplicam: - os campos `modalidadeAgente` e `prestadorDoServicoDeSaque` são de **preenchimento obrigatório**; - quando o `saque` estiver presente a cobrança deve respeitar as seguintes condições: - O campo `valor.original` deve ser preenchido com **valor igual a 0.00 (zero)**; - O campo `valor.modalidadeAlteracao` deve possuir o valor 0 (zero) explicitamente, ou implicitamente (pelo não preenchimento). - quando o `troco` estiver presente a cobrança deve respeitar as seguintes condições: - O campo `valor.original` deve ser preenchido com **valor maior que 0.00 (zero)**; - O campo `valor.modalidadeAlteracao` deve possuir o valor 0 (zero) explicitamente, ou implicitamente (pelo não preenchimento). **IMPORTANTE**: Quando usados o `saque` ou `troco` não será permitida a alteração do `valor.original` recebido. Na presença de `saque` ou `troco` o recebimento do campo `valor.modalidadeAlteracao` com valor 1 (um) é considerado erro. #### Exemplos válidos: Considerando os campos da estrutura `valor` e o predicado 'presente' cujo resultado é verdade quando a estrutura apontada é encontrada temos: - **uma cobrança com valor fixo** (condições: valor.original > 0 && valor.modalidadeAlteração = 0 && !presente(valor.retirada)) ``` ... "valor": { "original": "10.00" }, ... ``` - **uma cobrança com valor alterável** (condições: valor.original >= 0.00 && modalidadeAlteração = 1 && !presente(valor.retirada)) ``` ... "valor": { "original": "10.00", "modalidadeAlteracao": 1 }, ``` - **saque com valor fixo** (condições: valor.original = 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.saque) && valor.retirada.saque.valor > 0 && valor.retirada.saque.modalidadeAlteracao = 0) ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor alterável** (condições: valor.original = 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.saque) && valor.retirada.saque.valor >= 0 && valor.retirada.saque.modalidadeAlteracao = 1) ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **cobrança com troco fixo** (condições: valor.original > 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.troco) && valor.retirada.troco.valor > 0 && valor.retirada.troco.modalidadeAlteracao = 0) ``` ... "valor": { "original": "10.00", "retirada": { "troco": { "valor": "5.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **cobrança com troco alterável** (condições: valor.original > 0.00 && valor.modalidadeAlteração = 0 && presente(valor.retirada.troco) && valor.retirada.troco.valor >= 0 && valor.retirada.troco.modalidadeAlteracao = 1) ``` ... "valor": { "original": "10.00", "retirada": { "troco": { "valor": "0.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` #### Exemplos inválidos: Abaixo alguns exemplos que **não são válidos**. Convém observar que esta listagem não tem pretensão de ser completa, sendo tão somente uma referência para alguns erros possíveis. - **saque sem `modalidadeAgente` e `prestadorDoServicoDeSaque`** ``` ... "valor": { "original": "0.00", "retirada": { "saque": { "valor": "5.00" } } }, ... ``` - **cobrança com saque e troco juntos** (não pode ter os dois ao mesmo tempo) ``` ... "valor": { "original": "100.00", "retirada": { "saque": { "valor": "50.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" }, "troco": { "valor": "30.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor.original maior que 0.00 (zero)** (saque requer valor.original = 0.00) ``` ... "valor": { "original": "10.00", "retirada": { "saque": { "valor": "5.00", "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **troco com valor.original igual a 0.00 (zero)** (para haver troco tem que haver valor.original > 0.00) ``` ... "valor": { "original": "0.00", "retirada": { "troco": { "valor": "5.00", "modalidadeAgente": "AGTEC", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **saque com valor.original alterável** (não se pode alterar o valor.original na presença do saque) ``` ... "valor": { "original": "0.00", "modalidadeAlteracao": 1, "retirada": { "saque": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGPSS", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` - **troco com valor.original alterável** (não se pode alterar o valor.original na presença do troco) ``` ... "valor": { "original": "0.01", "modalidadeAlteracao": 1, "retirada": { "troco": { "valor": "5.00", "modalidadeAlteracao": 1, "modalidadeAgente": "AGTOT", "prestadorDoServicoDeSaque": "12345678" } } }, ... ``` title: "Informações de retirada" type: "object" oneOf: - type: "object" properties: saque: type: "object" title: "Saque" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] description: "Informações relacionadas ao saque" properties: valor: type: "string" title: "Valor do saque" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do saque efetuado" modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 default: 0 title: "Modalidade de alteração do saque" description: "Modalidade de alteração de valor do saque. Quando não preenchido o valor assumido é o 0 (zero)." modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
AGPSSAgente Facilitador de Serviço de Saque (ATENÇÃO: no mapeamento para o campo 'modalidadeAgente', da pacs.008, esse valor deve ser substituído por AGFSS)
enum: - "AGTEC" - "AGTOT" - "AGPSS" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" - type: "object" properties: troco: type: "object" title: "Troco" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] description: "Informações relacionadas ao troco" properties: valor: type: "string" title: "Valor do troco" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do troco efetuado" modalidadeAlteracao: type: "integer" format: "int32" minimum: 0 maximum: 1 default: 0 title: "Modalidade de alteração do troco" description: "Modalidade de alteração de valor do troco. Quando não preenchido o valor assumido é o 0 (zero)." modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
enum: - "AGTEC" - "AGTOT" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" CobVPayloadValor: type: "object" title: "Valor da cobrança com vencimento calculada retornada pelo payload" required: ["final"] description: "Todos os campos que indicam valores monetários obedecem ao pattern \\d{1,10}\\.\\d{2}. O separador decimal é o caractere ponto. Não é aplicável utilizar separador de milhar. Exemplos de valores aderentes ao padrão: “1.00”, “123.99”, “123456789.23" properties: original: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor original da cobrança." multa: title: "Multa aplicada" description: "Multa aplicada à cobrança" type: "string" pattern: "\\d{1,10}\\.\\d{2}" juros: title: "Juro aplicado" description: "Juro aplicado à cobrança" type: "string" pattern: "\\d{1,10}\\.\\d{2}" abatimento: title: "Abatimento aplicado" description: "Abatimento aplicado à cobrança" type: "string" pattern: "\\d{1,10}\\.\\d{2}" desconto: title: "Desconto aplicado" description: "Descontos aplicados à cobrança" type: "string" pattern: "\\d{1,10}\\.\\d{2}" final: type: "string" title: "Valor final" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor final da cobrança." RecCompleta: type: "object" title: "Recorrência Completa" required: ["status"] description: "Atributos de Configuração de Recorrência" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/RecBase" - type: "object" properties: recebedor: oneOf: - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" - $ref: "#/components/schemas/DadosPagadorRec" - $ref: "#/components/schemas/RecStatus" - $ref: "#/components/schemas/RecConfiguracao" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationRecCompleta" - $ref: "#/components/schemas/RecAtualizacao" - $ref: "#/components/schemas/RecEncerramento" - type: "object" properties: solicitacao: type: "array" title: "Solicitações vinculadas" description: "Solicitações vinculadas" items: allOf: - $ref: "#/components/schemas/SolicRecCompleta" - $ref: "#/components/schemas/RecAtivacao" - type: "object" properties: dadosQR: type: "object" title: "Informações do QR Composto." description: | ##### Informações relacionadas aos parâmetros `idRec` e `txid` informados na requisição. Ao consultar uma recorrência via endpoint GET `/rec/{idRec}?txid={txid}`, o usuário recebedor pode optar pela consulta sem o `txid` ou por compor a requisição com um `txid` de uma cobrança imediata, ou cobrança com vencimento, de forma a obter o QR Composto para a jornada de interesse. Os `dadosQR` retornados variam de acordo com a jornada desejada, indicada pela presença dos parâmetros de interesse, conforme a tabela abaixo:
idRectxid de Cobtxid de CobVConteúdo esperado
X--
{ jornada: "JORNADA_2", pixCopiaECola: "QR Composto da recorrência" }
XX-
{ jornada: "JORNADA_3", pixCopiaECola: "QR Composto da cobrança imediata + recorrência" }
X-X
{ jornada: "JORNADA_4", pixCopiaECola: "QR Composto da cobrança com vencimento + recorrência" }
Os campos `dadosQR.jornada` e `dadosQR.pixCopiaECola` só serão retornados se as respectivas locations necessárias para a construção do QR Composto estiverem preenchidas na recorrência e na eventual cobrança, a depender da jornada desejada. properties: jornada: type: "string" title: "Jornada de ativação" enum: - "JORNADA_2" - "JORNADA_3" - "JORNADA_4" pixCopiaECola: type: "string" title: "Pix Copia e Cola correspondente à Recorrência." description: "Este campo retorna o valor do Pix Copia e Cola correspondente à recorrência. Trata-se da sequência de caracteres que representa o BR Code." maxLength: 512 RecCompletaPesquisada: type: "object" title: "Recorrência Completa Pesquisada" required: ["status"] description: "Atributos de Configuração de Recorrência" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/RecBase" - type: "object" properties: recebedor: oneOf: - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" - $ref: "#/components/schemas/DadosPagadorRec" - $ref: "#/components/schemas/RecStatus" - $ref: "#/components/schemas/RecConfiguracao" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationRecCompleta" - $ref: "#/components/schemas/RecAtualizacao" - $ref: "#/components/schemas/RecEncerramento" - type: "object" properties: solicitacao: type: "array" title: "Solicitações vinculadas" description: "Solicitações vinculadas" items: allOf: - $ref: "#/components/schemas/SolicRecCompleta" - $ref: "#/components/schemas/RecAtivacao" RecGerada: type: "object" title: "Recorrência Gerada" description: "Atributos de Configuração de Recorrência" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/RecBase" - type: "object" properties: recebedor: oneOf: - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" - $ref: "#/components/schemas/RecStatus" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationRecCompleta" - $ref: "#/components/schemas/RecAtualizacao" - $ref: "#/components/schemas/RecEncerramento" - $ref: "#/components/schemas/RecAtivacao" RecSolicitada: type: "object" title: "Recorrência Solicitada" description: "Atributos de Configuração de Recorrência" allOf: - $ref: "#/components/schemas/RecBase" - $ref: "#/components/schemas/RecConfiguracao" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationRecId" - $ref: "#/components/schemas/RecAtivacaoSolicitada" RecPayload: type: "object" title: "Payload da Recorrência" required: ["idRec","atualizacao"] description: "Atributos de Configuração de Recorrência" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/RecBase" - type: "object" properties: recebedor: oneOf: - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" allOf: - type: "object" required: ["ispbParticipante"] properties: ispbParticipante: type: "string" title: "ISPB do usuário recebedor." description: "ISPB do usuário recebedor." pattern: "\\d{8}" - $ref: "#/components/schemas/RecConfiguracao" - $ref: "#/components/schemas/RecAtualizacao" RecRevisada: type: "object" title: "Recorrência Revisada" description: "Atributos de Revisão da Configuração de Recorrência" allOf: - type: "object" title: "Status da Recorrência" properties: status: type: "string" title: "Status do registro da recorrência" enum: - "CANCELADA" - type: "object" properties: vinculo: type: "object" properties: devedor: description: "O objeto devedor organiza as informações sobre o devedor da recorrência." oneOf: - type: "object" required: ["nome"] title: "Pessoa Física" properties: nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 140 - type: "object" required: ["nome"] title: "Pessoa Jurídica" properties: nome: type: "string" title: "Nome" description: "Nome do usuário." maxLength: 140 - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationRecId" - type: "object" properties: calendario: type: "object" title: "Informações sobre calendário da recorrência" description: "Informações sobre calendário da recorrência" properties: dataInicial: type: "string" format: "date" title: "Data estimada de primeiro pagamento." description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. Data estimada de primeiro pagamento." example: "2023-04-01" - $ref: "#/components/schemas/RecAtivacaoSolicitada" RecNotification: type: "object" title: "Recorrência Notificada" required: ["idRec","status",atualizacao"] description: "Atributos de Notificação de Recorrência" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/RecStatus" - $ref: "#/components/schemas/RecAtualizacao" - $ref: "#/components/schemas/RecEncerramento" - $ref: "#/components/schemas/RecAtivacao" RecAtivacao: type: "object" title: "Dados relacionados à confirmação da ativação da recorrência." properties: ativacao: type: "object" title: "Dados relacionados à confirmação da ativação da recorrência." required: ["tipoJornada"] description: "Dados relacionados à confirmação da ativação da recorrência." properties: tipoJornada: type: "string" title: "Jornada de ativação" description: | Dado relacionado ao caminho percorrido pelo processo de adesão a recorrência pelo usuário pagador, os valores possíveis são: - JORNADA_1: Usuário pagador aceitou a recorrência através de notificação externa ao ecossistema - JORNADA_2: Usuário pagador aceitou a recorrência através de leitura de QR Code de recorrência - JORNADA_3: Usuário pagador iniciou a recorrência através de leitura de QR Code composto e pagamento de cobrança imediata. O uso desta jornada torna obrigatório o preenchimento da informação dadosJornada.txid - JORNADA_4: Usuário pagador escolheu aderir à recorrência através de leitura de QR Code composto relacionado à cobrança com vencimento ou estática relacionada a um contrato vigente - AGUARDANDO_DEFINICAO: Valor inicial posterior a criação e anterior a ativação da recorrência. enum: - "JORNADA_1" - "JORNADA_2" - "JORNADA_3" - "JORNADA_4" - "AGUARDANDO_DEFINICAO" dadosJornada: type: "object" title: "Dados de confirmação da jornada e início da recorrência" oneOf: - type: "object" title: "Cobrança imediata vinculada à Jornada 3" required: ["txid"] description: "Dado de preenchimento obrigatório quando utilizada a Jornada 3. Este campo deve ser removido pelo PSP Recebedor quando a ativação for realizada pelas jornadas 1, 2 ou 4." properties: txid: $ref: "#/components/schemas/TxId" RecAtivacaoSolicitada: type: "object" title: "Dados relacionados à confirmação da ativação da recorrência." properties: ativacao: type: "object" title: "Dados relacionados à confirmação da ativação da recorrência." description: "Dados relacionados à confirmação da ativação da recorrência." properties: dadosJornada: type: "object" title: "Dados de confirmação da jornada e início da recorrência" oneOf: - type: "object" title: "Cobrança imediata vinculada à Jornada 3" required: ["txid"] description: "Dado de preenchimento obrigatório quando utilizada a Jornada 3. Este campo deve ser removido pelo PSP Recebedor quando a ativação for realizada pelas jornadas 1, 2 ou 4." properties: txid: $ref: "#/components/schemas/TxId" RecStatus: type: "object" title: "Status da Recorrência" required: ["status"] properties: status: type: "string" title: "Status do registro da recorrência" enum: - "CRIADA" - "APROVADA" - "REJEITADA" - "EXPIRADA" - "CANCELADA" RecConfiguracao: type: "object" title: "Configuração da Recorrência" required: ["politicaRetentativa"] properties: politicaRetentativa: type: "string" title: "Política de retentativa pós vencimento da recorrência" enum: - "NAO_PERMITE" - "PERMITE_3R_7D" RecAtualizacao: type: "object" title: "Histórico de atualização da recorrência." required: ["atualizacao"] properties: atualizacao: type: "array" title: "Histórico de Status" description: "Histórico das mudanças de status da recorrência." items: type: "object" required: ["status", "data"] properties: status: type: "string" title: "Status da recorrência" description: "Status da recorrência." enum: - "CRIADA" - "APROVADA" - "REJEITADA" - "EXPIRADA" - "CANCELADA" data: type: "string" format: "date-time" description: "Data e hora do registro de status atualizado. Respeita RFC 3339." RecEncerramento: type: "object" title: "Detalhamento do encerramento da recorrência." properties: encerramento: type: "object" title: "Detalhamento do encerramento da recorrência." oneOf: - type: "object" properties: rejeicao: type: "object" title: "Informações sobre a rejeição da recorrência" required: ["codigo", "descricao"] description: "Informações sobre a rejeição da recorrência" properties: codigo: type: "string" title: "Código da rejeição" description: "Código da rejeição. Corresponde ao código de rejeição presente no catálogo de mensagens." enum: - AP13 - AP14 maxLength: 4 descricao: type: "string" title: "Descricao da rejeição" description: "Descricao da causa da rejeição" maxLength: 105 - type: "object" properties: cancelamento: type: "object" title: "Informações sobre o cancelamento da recorrência" required: ["solicitante", "codigo", "descricao"] description: "Informações sobre o cancelamento da recorrência" properties: solicitante: type: "string" title: "Solicitante do cancelamento" enum: - PSP_PAGADOR - USUARIO_PAGADOR - PSP_RECEBEDOR - USUARIO_RECEBEDOR codigo: type: "string" title: "Código do cancelamento" description: "Código do cancelamento. Corresponde ao código de cancelamento presente no catálogo de mensagens." enum: - ACCL - CPCL - DCSD - ERSL - FRUD - PCFD - SLCR - SLDB maxLength: 4 descricao: type: "string" title: "Descricao do cancelamento" description: "Descricao do cancelamento." maxLength: 105 RecId: type: "string" title: "ID Recorrência" description: | # Identificador da Recorrência ID da recorrência: RRxxxxxxxxyyyyMMddkkkkkkkkkkk (29 caracteres; "case sensitive", isso é, diferencia letras maiúsculas e minúsculas), sendo: - "R" ou "C": fixo (1 caractere). "R" caso a recorrência tenha sido criada dentro do Pix, ou "C" caso tenha sido criada pela trilha do Open Finance; - "R" ou "N": fixo (1 caractere). "R" caso a recorrência permita novas tentativas de pagamento pós vencimento, ou "N" caso não permita novas tentativas. - "xxxxxxxx": identificação do agente que presta serviço para o usuário recebedor que gerou o , podendo ser: o ISPB do participante direto, o ISPB do participante indireto ou os 8 primeiros dígitos do CNPJ do prestador de serviço de iniciação (8 caracteres numéricos [0-9]); - "yyyyMMdd": data (8 caracteres) de criação da recorrência; - "kkkkkkkkkkk": sequencial criado pelo agente que gerou o (11 caracteres alfanuméricos [a-z|A-Z|0-9]). Deve ser único dentro de cada "yyyyMMdd". Dessa forma, o ID da recorrência deve ser formado de acordo com um dos tipos a seguir: - "RRxxxxxxxxyyyyMMddkkkkkkkkkkk"; para recorrência criada dentro do Pix e que permite novas tentativas de pagamento pós vencimento; ou - "RNxxxxxxxxyyyyMMddkkkkkkkkkkk"; para recorrência criada dentro do Pix e que não permite novas tentativas de pagamento pós vencimento; ou - "CRxxxxxxxxyyyyMMddkkkkkkkkkkk"; para recorrência criada pela trilha do Open Finance e que permite novas tentativas de pagamento pós vencimento; ou - "CNxxxxxxxxyyyyMMddkkkkkkkkkkk"; para recorrência criada pela trilha do Open Finance e que não permite novas tentativas de pagamento pós vencimento.” pattern: "[a-zA-Z0-9]{29}" minLength: 29 maxLength: 29 example: RR1234567820240115abcdefghijk RecBase: title: "Recorrência Base" type: "object" required: ["idRec", "calendario","vinculo","recebedor", "retentativa"] description: "Atributos de Configuração de Recorrência" properties: vinculo: type: "object" title: "Descrição do Objeto da Recorrência" required: ["contrato","devedor"] description: "Informações sobre o objeto da recorrência." properties: objeto: type: "string" title: "Identificador do objeto de vínculo" description: "Campo de texto livre para informações referentes ao contrato que permitam ao usuário pagador reconhecer o objeto dos pagamentos periódicos por meio do Pix Automático." maxLength: 35 example: - "Conta de energia Av. Paulista, 1804" - "Serviço de internet banda larga" - "Assinatura anual" devedor: description: "O objeto devedor organiza as informações sobre o devedor da recorrência." oneOf: - $ref: "#/components/schemas/PessoaFisicaRecorrencia" - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" contrato: type: "string" title: "Objeto da autorização" description: "Número, identificador, ou código que representa o objeto da autorização (contrato, pedido etc.)." maxLength: 35 calendario: type: "object" title: "Informações sobre calendário da recorrência" required: ["dataInicial", "periodicidade"] description: "Informações sobre calendário da recorrência" properties: dataInicial: type: "string" format: "date" title: "Data estimada de primeiro pagamento." description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. Data estimada de primeiro pagamento." example: "2023-04-01" dataFinal: type: "string" format: "date" title: "Data final da vigência." description: "Campo opcional que deve ser preenchido para autorizações com vigência pré-definida, devendo ser compatível com os valores informados em tipoFrequencia e a dataInicialRecorrencia. Não deve ser preenchido para autorizações por tempo indeterminado. Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601." example: "2023-04-01" periodicidade: type: "string" title: "Periodicidade das cobranças recorrentes." enum: - "SEMANAL" - "MENSAL" - "TRIMESTRAL" - "SEMESTRAL" - "ANUAL" valor: type: "object" properties: valorRec: type: "string" pattern: "\\d{1,10}\\.\\d{2}" title: "Valor da recorrência" description: "Campo opcional, deve ser preenchido apenas quando o valor dos pagamentos for fixo ou não for sujeito a alteração durante a vigência da autorização." valorMinimoRecebedor: type: "string" pattern: "\\d{1,10}\\.\\d{2}" title: "Valor mínimo da recorrência" description: "Campo opcional. Valor definido pelo usuário recebedor. Se o usuário pagador atribuir um valor máximo para os pagamentos daquela autorização, ele não poderá ser inferior ao piso definido pelo usuário recebedor. Não pode ser preenchido nas autorizações de valor fixo, ou seja, com campo valor preenchido." SolicRecId: type: "object" title: "Id da Solicitação de recorrência" required: ["idSolicRec"] description: "Dados criados ou alterados da cobrança recorrente via API Pix" properties: idSolicRec: type: "string" title: "ID Solicitação da Recorrência" description: | # Identificador da Solicitação da Recorrência Regra de formação: - SCxxxxxxxxyyyyMMddkkkkkkkkkkk (29 caracteres; “case sensitive”, isso é, diferencia letras maiúsculas e minúsculas), sendo: - SC - fixo (2 caracteres); - xxxxxxxx – ISPB do agente que envia a mensagem pain.009 de solicitação de confirmação da recorrência; - yyyyMMdd – data (8 caracteres) de criação da mensagem pain.009 de solicitação de confirmação da recorrência; - kkkkkkkkkkk – sequencial criado pelo agente que gerou a mensagem de solicitação de confirmação da recorrência (11 caracteres alfanuméricos [a-z|A-Z|0-9]). Deve ser único dentro de cada “yyyyMMdd”. pattern: "[a-zA-Z0-9]{29}" minLength: 29 maxLength: 29 example: SC1234567820240115abcdefghijk SolicRecBase: type: "object" title: "Solicitação de Recorrência Base" required: ["calendario", "pagador", "idRec"] description: "Dados criados ou alterados da cobrança recorrente via API Pix" properties: idRec: $ref: "#/components/schemas/RecId" calendario: type: "object" title: "Informações de Calendário da Solicitação da Recorrência" required: ["dataExpiracaoSolicitacao"] properties: dataExpiracaoSolicitacao: type: "string" format: "date-time" title: "Data da expiração da solicitação enviada ao usuário pagador." description: "Data da expiração da solicitação enviada ao usuário pagador. Respeita RFC 3339." destinatario: allOf: - $ref: "#/components/schemas/DadosBancarios" oneOf: - $ref: "#/components/schemas/CPF" - $ref: "#/components/schemas/CNPJ" SolicRecStatus: type: "object" title: "Status da Solicitação de Recorrência" required: ["status"] properties: status: type: "string" title: "Status do registro da solicitação de recorrência" enum: - "CRIADA" - "ENVIADA" - "RECEBIDA" - "REJEITADA" - "ACEITA" - "EXPIRADA" - "CANCELADA" SolicRecAtualizacao: type: "object" title: "Histórico de Status da Solicitação de Recorrência" required: ["atualizacao"] properties: atualizacao: type: "array" title: "Histórico de Status da Solicitação de Recorrência" description: "" items: type: "object" required: ["status", "data"] properties: status: type: "string" title: "Status do registro da solicitação de recorrência" enum: - "CRIADA" - "ENVIADA" - "RECEBIDA" - "REJEITADA" - "ACEITA" - "EXPIRADA" - "CANCELADA" data: type: "string" format: "date-time" description: "Data e hora do registro de status atualizado. Respeita RFC 3339." SolicRecSolicitada: type: "object" title: "Solicitação de Recorrência" description: "Dados criados ou alterados da solicitação da recorrência" allOf: - $ref: "#/components/schemas/SolicRecBase" SolicRecRevisada: type: "object" title: "Solicitação de Recorrência" description: "Dados alterados da solicitação da recorrência" required: ["status"] properties: status: type: "string" title: "Status do registro da solicitação de recorrência" enum: - "CANCELADA" SolicRecCompleta: type: "object" title: "Solicitação de Recorrência Completa" required: ["rec"] description: "Dados criados ou alterados da solicitação da recorrência" allOf: - $ref: "#/components/schemas/SolicRecId" - $ref: "#/components/schemas/SolicRecBase" - $ref: "#/components/schemas/SolicRecStatus" - $ref: "#/components/schemas/SolicRecAtualizacao" - type: "object" properties: recPayload: $ref: "#/components/schemas/RecPayload" CobRGerada: type: "object" title: "Cobrança Recorrente Gerada" required: ["idRec","txid", "status", "valor", "devedor", "recebedor", "calendario"] description: "Dados criados ou alterados da cobrança recorrente via API Pix" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - type: "object" properties: txid: $ref: "#/components/schemas/TxId" - $ref: "#/components/schemas/CobRBase" - type: "object" properties: calendario: type: "object" required: ["criacao"] properties: criacao: type: "string" format: "date" title: "Data de criação da cobrança" description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. É a data de criação da cobrança." example: "2023-04-01" - type: "object" properties: recebedor: allOf: - $ref: "#/components/schemas/PessoaJuridicaRecorrencia" - $ref: "#/components/schemas/CobRStatus" - $ref: "#/components/schemas/DadosDevedorRecorrencia" CobRCompleta: type: "object" title: "Cobrança Recorrente Completa" required: ["idRec","txid", "status", "valor", "devedor", "recebedor", "calendario"] description: "Dados completos da cobrança recorrente via API Pix" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - type: "object" properties: txid: $ref: "#/components/schemas/TxId" - $ref: "#/components/schemas/CobRBase" - type: "object" properties: calendario: type: "object" required: ["criacao"] properties: criacao: type: "string" format: "date" title: "Data de criação da cobrança" description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. É a data de criação da cobrança." example: "2023-04-01" - $ref: "#/components/schemas/CobRStatus" - $ref: "#/components/schemas/CobRConfiguracao" - $ref: "#/components/schemas/DadosDevedorRecorrencia" - type: "object" properties: pix: type: "array" title: "Pix recebidos" items: allOf: - $ref: "#/components/schemas/PixAutomatico" - type: "object" properties: txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{26,35}" - $ref: "#/components/schemas/CobRAtualizacao" - $ref: "#/components/schemas/CobRTentativas" CobRAtualizacao: type: "object" title: "Histórico de Atualização da Cobrança Recorrente" required: ["atualizacao"] properties: atualizacao: type: "array" title: "Histórico de Status" description: "Histórico das mudanças de status das cobranças recorrentes." items: type: "object" required: ["status", "data"] properties: status: type: "string" title: "Status da cobrança" description: "Status da cobrança." enum: - "CRIADA" - "ATIVA" - "CONCLUIDA" - "EXPIRADA" - "REJEITADA" - "CANCELADA" data: type: "string" format: "date-time" description: "Data e hora do registro de status atualizado. Respeita RFC 3339." encerramento: type: "object" title: "Detalhamento do encerramento da cobrança." oneOf: - type: "object" properties: cancelamento: type: "object" title: "Informações sobre o cancelamento da cobrança" required: ["solicitante", "codigo", "descricao"] description: "Informações sobre o cancelamento da cobrança" properties: solicitante: type: "string" title: "Solicitante do cancelamento" enum: - PSP_PAGADOR - USUARIO_PAGADOR - PSP_RECEBEDOR - USUARIO_RECEBEDOR codigo: type: "string" title: "Código do cancelamento" description: "Código do cancelamento. Corresponde ao código de cancelamento presente no catálogo de mensagens." maxLength: 4 enum: - ACCT - BLCK - CCLD - FAIL - OTHR - SLBD - SLCR descricao: type: "string" title: "Descricao do cancelamento" description: "Descricao da causa do cancelamento" maxLength: 105 - type: "object" properties: rejeicao: type: "object" title: "Informações sobre a rejeição da cobrança" required: ["codigo", "descricao"] description: "Informações sobre a rejeição da cobrança" properties: codigo: type: "string" title: "Código da rejeição" description: "Código da rejeição. Corresponde ao código de rejeição presente no catálogo de mensagens." maxLength: 4 enum: - AB10 - AC05 - AC06 - AG12 - AM02 - AM09 - DENC - DS27 - DTED - DTNT - FBRD - IRNT - MIDI - MSUC - NIEC - NIPA - NITX - QUNT - RC09 - UDEI descricao: type: "string" title: "Descricao da rejeição" description: "Descricao da causa da rejeição" maxLength: 105 CobRTentativas: type: "object" title: "Histórico de Tentativas da Cobrança Recorrente" properties: tentativas: type: "array" title: "Histórico de Tentativas de Cobrança" description: "Histórico de Tentativas de Cobrança" items: type: "object" required: ["dataLiquidacao", "tipo", "endToEndId", "status","atualizacao"] properties: dataLiquidacao: type: "string" format: "date" description: "Data da liquidação da cobrança. Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601." example: "2023-04-01" tipo: type: "string" title: "Tipo da Tentativa" description: "Tipo da tentativa da cobrança." enum: - "AGND" - "NTAG" - "RIFL" status: type: "string" title: "Status da Tentativa" description: "Status da tentativa da cobrança." enum: - "SOLICITADA" - "AGENDADA" - "PAGA" - "CANCELADA" - "REJEITADA" - "EXPIRADA" endToEndId: $ref: "#/components/schemas/EndToEndId" atualizacao: type: "array" title: "Histórico de Status da Tentativa" description: "Histórico das mudanças de status da tentativa de cobrança." items: type: "object" required: ["status", "data"] properties: status: type: "string" title: "Status da Tentativa" description: "Status da tentativa da cobrança." enum: - "SOLICITADA" - "AGENDADA" - "PAGA" - "CANCELADA" - "REJEITADA" - "EXPIRADA" data: type: "string" format: "date-time" description: "Data e hora do registro de status atualizado. Respeita RFC 3339." CobRRevisada: type: "object" title: "Cobrança Recorrente Revisada" description: "Dados enviados para revisão da cobrança recorrente via API Pix" allOf: - $ref: "#/components/schemas/CobRStatusRevisada" CobRSolicitada: type: "object" title: "Cobrança Recorrente Solicitada" required: ["idRec", "calendario", "valor", "recebedor"] description: "Dados enviados para criação da cobrança recorrente via API Pix" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - $ref: "#/components/schemas/CobRBase" - $ref: "#/components/schemas/DadosDevedorRecorrencia" CobRNotification: type: "object" title: "Cobrança Recorrente Notificada" required: ["idRec", "txid", "status", "atualizacao"] description: "Dados enviados para criação da cobrança recorrente via API Pix" allOf: - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" - type: "object" properties: txid: $ref: "#/components/schemas/TxId" - $ref: "#/components/schemas/CobRStatus" - $ref: "#/components/schemas/CobRAtualizacao" - $ref: "#/components/schemas/CobRTentativas" - type: "object" properties: pix: type: "array" title: "Pix recebidos" items: allOf: - $ref: "#/components/schemas/PixAutomatico" - type: "object" properties: txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{26,35}" CobRConfiguracao: type: "object" title: "Configuração da Cobrança Recorrente" required: ["politicaRetentativa"] properties: politicaRetentativa: type: "string" title: "Política de retentativa da cobrança recorrente" enum: - "NAO_PERMITE" - "PERMITE_3R_7D" CobRStatus: type: "object" title: "Status da Cobrança Recorrente" properties: status: type: "string" title: "Status do registro da cobrança" enum: - "CRIADA" - "ATIVA" - "CONCLUIDA" - "EXPIRADA" - "REJEITADA" - "CANCELADA" CobRStatusRevisada: type: "object" title: "Status da Cobrança Recorrente" properties: status: type: "string" title: "Status do registro da cobrança" enum: - "CANCELADA" CobRBase: type: "object" title: "Cobrança Recorrente Base" required: ["ajusteDiaUtil"] description: "Atributos de cobrança recorrente" properties: infoAdicional: type: "string" title: "Informações adicionais da fatura." description: "Informações adicionais da fatura." maxLength: 140 calendario: type: "object" title: "Informações sobre calendário da cobrança" required: ["dataDeVencimento"] description: "" properties: dataDeVencimento: type: "string" format: "date" title: "Data de vencimento da cobrança" description: "Trata-se de uma data, no formato `YYYY-MM-DD`, segundo ISO 8601. É a data de expiração da cobrança." example: "2023-04-01" valor: type: "object" title: "Valor da cobrança recorrente" required: ["original"] description: "Valor da cobrança recorrente" properties: original: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor original da cobrança." ajusteDiaUtil: type: "boolean" title: "Ajuste data vencimento para próximo dia útil" default: true description: "Campo de ativação do ajuste da data de vencimento para próximo dia útil caso o vencimento corrente seja um dia não útil. O PSP Pagador deverá considerar os feriados locais com base no código município do usuário pagador." recebedor: description: "O objeto recebedor organiza as informações sobre o recebedor da cobrança." allOf: - $ref: "#/components/schemas/DadosBancariosRecebedor" CobBase: type: "object" title: "Cobrança Base" description: "Atributos comuns a todas entidades de Cobrança" properties: chave: type: "string" title: "Chave DICT do recebedor" description: | # Formato do campo chave * O campo chave determina a chave Pix registrada no DICT que será utilizada para a cobrança. Essa chave será lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornará a informação que identificará o recebedor da cobrança. * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. * O formato das chaves pode ser encontrado na seção "Formatação das chaves do DICT no BR Code" do [Manual de Padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). maxLength: 77 solicitacaoPagador: type: "string" title: "Solicitação ao pagador" description: "O campo solicitacaoPagador, opcional, determina um texto a ser apresentado ao pagador para que ele possa digitar uma informação correlata, em formato livre, a ser enviada ao recebedor. Esse texto será preenchido, na pacs.008, pelo PSP do pagador, no campo RemittanceInformation . O tamanho do campo na pacs.008 está limitado a 140 caracteres." maxLength: 140 infoAdicionais: type: "array" title: "Informações adicionais" description: "Cada respectiva informação adicional contida na lista (nome e valor) deve ser apresentada ao pagador." maximum: 50 items: type: "object" required: ["nome", "valor"] properties: nome: type: "string" title: "Nome" description: "Nome do campo." maxLength: 50 valor: type: "string" title: "Valor" description: "Dados do campo." maxLength: 200 CobBaseCopiaCola: type: "object" title: "Cobrança Base com Copia e Cola" description: "Atributos comuns a todas entidades de Cobrança que possuem informação de Copia e Cola" allOf: - type: "object" properties: pixCopiaECola: type: "string" title: "Pix Copia e Cola correspondente à cobrança." description: "Este campo retorna o valor do Pix Copia e Cola correspondente à cobrança. Trata-se da sequência de caracteres que representa o BR Code." maxLength: 512 - $ref: "#/components/schemas/CobBase" CobSolicitada: type: "object" title: "Cobrança imediata solicitada" description: "Dados enviados para criação ou alteração da cobrança imediata via API Pix" required: ["valor", "chave", "calendario"] allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobExpiracao" - type: "object" properties: devedor: description: "Os campos aninhados sob o objeto devedor são opcionais e identificam o devedor, ou seja, a pessoa ou a instituição a quem a cobrança está endereçada. Não identifica, necessariamente, quem irá efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. Não é permitido que o campo `devedor.cpf` e campo `devedor.cnpj` estejam preenchidos ao mesmo tempo. Se o campo `devedor.cnpj` está preenchido, então o campo `devedor.cpf` não pode estar preenchido, e vice-versa. Se o campo `devedor.nome` está preenchido, então deve existir ou um `devedor.cpf` ou um campo `devedor.cnpj` preenchido." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationCob" - type: "object" properties: valor: allOf: - required: ["original"] - $ref: "#/components/schemas/CobValor" - $ref: "#/components/schemas/CobBase" CobVSolicitada: type: "object" title: "Cobrança com vencimento solicitada" description: "Dados enviados para criação ou alteração da cobrança com vencimento via API Pix" required: ["valor", "chave", "devedor", "calendario"] allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobDataDeVencimento" - $ref: "#/components/schemas/DadosDevedor" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationCob" - type: "object" properties: valor: allOf: - required: ["original"] - $ref: "#/components/schemas/CobVValor" - $ref: "#/components/schemas/CobBase" CobRevisada: type: "object" title: "Cobrança imediata revisada" description: "Dados enviados para revisão da cobrança imediata via API Pix" allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobExpiracao" - type: "object" properties: devedor: description: "Os campos aninhados sob o objeto devedor são opcionais e identificam o devedor, ou seja, a pessoa ou a instituição a quem a cobrança está endereçada. Não identifica, necessariamente, quem irá efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. Não é permitido que o campo `devedor.cpf` e campo `devedor.cnpj` estejam preenchidos ao mesmo tempo. Se o campo `devedor.cnpj` está preenchido, então o campo `devedor.cpf` não pode estar preenchido, e vice-versa. Se o campo `devedor.nome` está preenchido, então deve existir ou um `devedor.cpf` ou um campo `devedor.cnpj` preenchido." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationCob" - type: "object" properties: status: type: "string" title: "Status do registro da cobrança" enum: - "REMOVIDA_PELO_USUARIO_RECEBEDOR" - type: "object" properties: valor: $ref: "#/components/schemas/CobValor" - $ref: "#/components/schemas/CobBase" CobVRevisada: type: "object" title: "Cobrança com vencimento revisada" description: "Dados enviados para revisão da cobrança com vencimento via API Pix" allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobDataDeVencimento" - $ref: "#/components/schemas/DadosDevedor" - type: "object" properties: loc: allOf: - $ref: "#/components/schemas/PayloadLocationCob" - type: "object" properties: status: type: "string" title: "Status do registro da cobrança" enum: - "REMOVIDA_PELO_USUARIO_RECEBEDOR" - type: "object" properties: valor: $ref: "#/components/schemas/CobVValor" - $ref: "#/components/schemas/CobBase" CobGerada: type: "object" title: "Cobrança imediata gerada" description: "Dados criados ou alterados da cobrança imediata via API Pix" required: ["txid", "calendario", "revisao", "status", "valor", "chave"] allOf: - type: "object" properties: calendario: required: ["expiracao"] title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobCriacao" - $ref: "#/components/schemas/CobExpiracao" txid: $ref: "#/components/schemas/TxId" revisao: $ref: "#/components/schemas/Revisao" - type: "object" properties: devedor: description: "Os campos aninhados sob o objeto devedor são opcionais e identificam o devedor, ou seja, a pessoa ou a instituição a quem a cobrança está endereçada. Não identifica, necessariamente, quem irá efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. Não é permitido que o campo `devedor.cpf` e campo `devedor.cnpj` estejam preenchidos ao mesmo tempo. Se o campo `devedor.cnpj` está preenchido, então o campo `devedor.cpf` não pode estar preenchido, e vice-versa. Se o campo `devedor.nome` está preenchido, então deve existir ou um `devedor.cpf` ou um campo `devedor.cnpj` preenchido." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" - type: "object" properties: loc: required: ["id", "txid", "tipoCob", "criacao"] allOf: - $ref: "#/components/schemas/PayloadLocation" - type: "object" properties: location: type: "string" title: "Localização do payload" description: "Localização do Payload a ser informada na criação da cobrança." maxLength: 77 format: uri example: "pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002" readOnly: true - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" - type: "object" properties: valor: required: ["original"] allOf: - $ref: "#/components/schemas/CobValor" - $ref: "#/components/schemas/CobBaseCopiaCola" CobVGerada: type: "object" title: "Cobrança com vencimento gerada" description: "Dados criados ou alterados da cobrança com vencimento via API Pix" required: [ "location", "txid", "devedor", "calendario", "revisao", "status", "valor", "chave", "recebedor", ] allOf: - type: "object" properties: calendario: required: ["validadeAposVencimento"] title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." allOf: - $ref: "#/components/schemas/CobCriacao" - $ref: "#/components/schemas/CobDataDeVencimento" txid: $ref: "#/components/schemas/TxId" revisao: $ref: "#/components/schemas/Revisao" - $ref: "#/components/schemas/DadosDevedor" - $ref: "#/components/schemas/DadosRecebedor" - type: "object" properties: loc: required: ["id", "txid", "tipoCob", "criacao"] allOf: - $ref: "#/components/schemas/PayloadLocation" - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" - type: "object" properties: valor: required: ["original"] allOf: - $ref: "#/components/schemas/CobVValor" - $ref: "#/components/schemas/CobBaseCopiaCola" CobrancaStatus: type: "string" title: "Status do registro da cobrança." description: | Estado do registro da cobrança. Não se confunde com o estado da cobrança em si, ou seja, não guarda relação com o fato de a cobrança encontrar-se vencida ou expirada, por exemplo. Os status são assim definidos: - `ATIVA`: indica que o registro se refere a uma cobrança que foi gerada mas ainda não foi paga nem removida; - `CONCLUIDA`: indica que o registro se refere a uma cobrança que já foi paga e, por conseguinte, não pode acolher outro pagamento; - `REMOVIDO_PELO_USUARIO_RECEBEDOR`: indica que o usuário recebedor solicitou a remoção do registro da cobrança; e - `REMOVIDO_PELO_PSP`: indica que o PSP Recebedor solicitou a remoção do registro da cobrança. enum: - "ATIVA" - "CONCLUIDA" - "REMOVIDA_PELO_USUARIO_RECEBEDOR" - "REMOVIDA_PELO_PSP" LoteCobVGerado: title: "Lote de cobranças com vencimento gerado" type: "object" required: ["id", "descricao", "criacao", "cobsv"] properties: id: type: "integer" format: "int64" title: "Id do lote" descricao: type: "string" title: "Descrição do lote" criacao: type: "string" format: "date-time" title: "Data de criação do lote" description: "Timestamp que indica o momento em que foi criado o lote. Respeita o formato definido na RFC 3339." cobsv: type: "array" items: $ref: "#/components/schemas/CobVGerada" CobVCompleta: title: "Cobrança com vencimento completa" required: ["status"] allOf: - $ref: "#/components/schemas/CobVSolicitada" - $ref: "#/components/schemas/CobVGerada" - type: "object" properties: pix: type: "array" title: "Pix recebidos" items: allOf: - $ref: "#/components/schemas/Pix" - type: "object" properties: txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{26,35}" - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" CobCompleta: title: "Cobrança imediata completa" required: ["status"] allOf: - $ref: "#/components/schemas/CobSolicitada" - $ref: "#/components/schemas/CobGerada" - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" - type: "object" properties: pix: type: "array" title: "Pix recebidos" items: allOf: - $ref: "#/components/schemas/Pix" - type: "object" properties: txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{26,35}" LoteCobVConsultado: title: "Lote de solicitações de alteração ou criação de cobranças com vencimento" type: "object" required: ["id", "descricao", "criacao", "cobsv"] properties: id: type: "integer" format: "int64" title: "Identificador do lote em formato numérico." descricao: type: "string" title: "Descrição do lote" criacao: type: "string" format: "date-time" title: "Data de criação do lote" description: "Timestamp que indica o momento em que foi criado o lote. Respeita o formato definido na RFC 3339." cobsv: type: "array" items: type: "object" required: ["txid", "status"] properties: txid: $ref: "#/components/schemas/TxId" status: type: "string" title: "Status da solicitação de criação/alteração da cobrança no contexto de criação via lote" enum: - "EM_PROCESSAMENTO" - "CRIADA" - "NEGADA" problema: $ref: "#/components/schemas/Problema" criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que a cobrança foi criada. Respeita RFC 3339." readOnly: true LotesCobVConsultados: title: "Lotes de solicitações de cobranças com vencimento" type: "object" required: ["parametros", "lotes"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaLote" lotes: type: "array" title: "Lotes de solicitações de criação/alteração de cobranças com vencimento" items: allOf: - $ref: "#/components/schemas/LoteCobVConsultado" CobVPayload: type: "object" title: "Payload JSON da cobrança com vencimento" description: "Dados da cobrança com vencimento acessados pelo payload JSON" required: [ "txid", "calendario", "revisao", "status", "valor", "chave", "devedor", "recebedor", ] allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." required: ["criacao", "apresentacao", "validadeAposVencimento"] allOf: - $ref: "#/components/schemas/CobCriacao" - $ref: "#/components/schemas/CobApresentacao" - $ref: "#/components/schemas/CobDataDeVencimento" - type: "object" properties: devedor: description: "Os campos aninhados sob o objeto devedor são opcionais e identificam o devedor, ou seja, a pessoa ou a instituição a quem a cobrança está endereçada. Não identifica, necessariamente, quem irá efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. Não é permitido que o campo `devedor.cpf` e campo `devedor.cnpj` estejam preenchidos ao mesmo tempo. Se o campo `devedor.cnpj` está preenchido, então o campo `devedor.cpf` não pode estar preenchido, e vice-versa. Se o campo `devedor.nome` está preenchido, então deve existir ou um `devedor.cpf` ou um campo `devedor.cnpj` preenchido." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" - $ref: "#/components/schemas/DadosRecebedor" - type: "object" properties: txid: $ref: "#/components/schemas/TxId" revisao: $ref: "#/components/schemas/Revisao" - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" - type: "object" properties: valor: $ref: "#/components/schemas/CobVPayloadValor" - $ref: "#/components/schemas/CobBase" CobPayload: type: "object" title: "Payload JSON da cobrança imediata" description: "Dados da cobrança imediata acessados pelo payload JSON" required: ["txid", "calendario", "revisao", "status", "valor", "chave"] allOf: - type: "object" properties: calendario: title: "Calendário" description: "Os campos aninhados sob o identificador calendário organizam informações a respeito de controle de tempo da cobrança." required: ["criacao", "apresentacao", "expiracao"] allOf: - $ref: "#/components/schemas/CobCriacao" - $ref: "#/components/schemas/CobApresentacao" - $ref: "#/components/schemas/CobExpiracao" txid: $ref: "#/components/schemas/TxId" revisao: $ref: "#/components/schemas/Revisao" - type: "object" properties: devedor: description: "Os campos aninhados sob o objeto devedor são opcionais e identificam o devedor, ou seja, a pessoa ou a instituição a quem a cobrança está endereçada. Não identifica, necessariamente, quem irá efetivamente realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas pode acontecer de outro CPF realizar, efetivamente, o pagamento do documento. Não é permitido que o campo `devedor.cpf` e campo `devedor.cnpj` estejam preenchidos ao mesmo tempo. Se o campo `devedor.cnpj` está preenchido, então o campo `devedor.cpf` não pode estar preenchido, e vice-versa. Se o campo `devedor.nome` está preenchido, então deve existir ou um `devedor.cpf` ou um campo `devedor.cnpj` preenchido." oneOf: - $ref: "#/components/schemas/PessoaFisica" - $ref: "#/components/schemas/PessoaJuridica" - type: "object" properties: status: $ref: "#/components/schemas/CobrancaStatus" - type: "object" properties: valor: $ref: "#/components/schemas/CobPayloadValor" - $ref: "#/components/schemas/CobBase" PayloadLocation: type: "object" title: "Location do Payload" description: "Identificador da localização do payload." required: ["id", "location", "tipoCob", "criacao"] properties: id: $ref: "#/components/schemas/PayloadLocationId" location: type: "string" title: "Localização do payload" description: "Localização do Payload a ser informada na criação da cobrança." maxLength: 77 format: uri example: "pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002" readOnly: true tipoCob: type: "string" title: "Tipo da cobrança" enum: - "cob" - "cobv" criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que a location foi criada. Respeita RFC 3339." readOnly: true PayloadLocationSolicitada: type: "object" title: "Location do Payload Solicitada" description: "Identificador da localização do payload solicitada." required: ["tipoCob"] properties: tipoCob: type: "string" title: "Tipo da cobrança" enum: - "cob" - "cobv" PayloadLocationRecSolicitada: type: "object" title: "Location do Payload Solicitada" description: "Identificador da localização do payload solicitada." required: ["tipo"] properties: tipo: type: "string" title: "Tipo da cobrança" enum: - "rec" PayloadLocationRecGerada: type: "object" title: "Location do Payload Completa" description: "Identificador da localização do payload completo." required: ["id", "location", "tipo", "criacao"] properties: id: $ref: "#/components/schemas/PayloadLocationRecId" location: type: "string" title: "Localização do payload" description: "Localização do Payload a ser informada na criação da recorrência." maxLength: 77 format: uri example: "pix.example.com/qr/v2/rec/2353c790eefb11eaadc10242ac120002" readOnly: true criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que a location foi criada. Respeita RFC 3339." readOnly: true PayloadLocationRecCompleta: type: "object" title: "Location do Payload Completa" description: "Identificador da localização do payload completo." allOf: - $ref: "#/components/schemas/PayloadLocationRecGerada" - type: "object" properties: idRec: $ref: "#/components/schemas/RecId" PayloadLocationCompleta: type: "object" title: "Location do Payload Completa" description: "Identificador da localização do payload completo." required: ["id", "location", "tipoCob", "criacao"] properties: id: $ref: "#/components/schemas/PayloadLocationId" txid: $ref: "#/components/schemas/TxId" location: type: "string" title: "Localização do payload" description: "Localização do Payload a ser informada na criação da cobrança." maxLength: 77 format: uri example: "pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002" readOnly: true tipoCob: type: "string" title: "Tipo da cobrança" enum: - "cob" - "cobv" criacao: type: "string" format: "date-time" title: "Data de Criação" description: "Data e hora em que a location foi criada. Respeita RFC 3339." readOnly: true PayloadLocationCob: type: "object" title: "Location do Payload" required: ["id", "tipoCob"] description: "Identificador da localização do payload." properties: id: $ref: "#/components/schemas/PayloadLocationId" ParametrosConsultaRec: type: "object" title: "Parâmetros de Consulta de Recorrências" description: "Parâmetros utilizados para a realização de uma consulta de recorrências." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T17:00:00Z" cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." locationPresente: type: "boolean" description: "Filtro pela existência de location vinculada." status: type: "string" title: "Status do registro da recorrência" description: "Filtro pelo status das recorrências." paginacao: $ref: "#/components/schemas/Paginacao" ParametrosConsultaCob: type: "object" title: "Parâmetros de Consulta de Cobrança" description: "[DEPRECADO] Parâmetros utilizados para a realização de uma consulta de cobranças." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T17:00:00Z" cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." locationPresente: type: "boolean" description: "Filtro pela existência de location vinculada." status: type: "string" title: "Status do registro da cobrança" description: "Filtro pelo status das cobranças." paginacao: $ref: "#/components/schemas/Paginacao" ParametrosConsultaCobR: type: "object" title: "Parâmetros de Consulta de Cobrança" description: "Parâmetros utilizados para a realização de uma consulta de cobranças." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T17:00:00Z" idRec: $ref: "#/components/schemas/RecId" cpf: type: "string" title: "CPF" pattern: "/^\\d{11}$/" description: "Filtro pelo CPF do devedor. Não pode ser utilizado ao mesmo tempo que o CNPJ." cnpj: type: "string" title: "CNPJ" pattern: "/^\\d{14}$/" description: "Filtro pelo CNPJ do devedor. Não pode ser utilizado ao mesmo tempo que o CPF." status: type: "string" title: "Status do registro da cobrança" description: "Filtro pelo status das cobranças." paginacao: $ref: "#/components/schemas/Paginacao" ParametrosConsultaLote: type: "object" title: "Parâmetros de consulta de lotes de cobrança com vencimento." description: "Parâmetros utilizados para a realização de uma consulta de lote de cobranças com vencimento." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-04-01T17:00:00Z" paginacao: $ref: "#/components/schemas/Paginacao" CobsVConsultadas: type: "object" title: "Cobranças com vencimento consultadas" required: ["parametros", "cobs"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaCob" cobs: type: "array" title: "Lista de cobranças" items: allOf: - $ref: "#/components/schemas/CobVCompleta" - required: ["status", "txid", "idCob"] CobsConsultadas: type: "object" title: "Cobranças imediatas consultadas" required: ["parametros", "cobs"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaCob" cobs: type: "array" title: "Lista de cobranças" items: allOf: - $ref: "#/components/schemas/CobCompleta" - required: ["status", "txid", "idCob"] CobsRConsultadas: type: "object" title: "Cobranças recorrentes consultadas" properties: parametros: $ref: "#/components/schemas/ParametrosConsultaCobR" cobsr: type: "array" title: "Lista de cobranças" items: allOf: - $ref: "#/components/schemas/CobRCompleta" RecsConsultadas: type: "object" title: "Recorrencias consultadas" properties: parametros: $ref: "#/components/schemas/ParametrosConsultaRec" recs: type: "array" title: "Lista de recorrências" items: allOf: - $ref: "#/components/schemas/RecCompletaPesquisada" Pix: type: "object" title: "Pix" required: ["endToEndId", "valor", "horario"] properties: endToEndId: $ref: "#/components/schemas/EndToEndId" txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{1,35}" valor: type: "string" title: "Valor do Pix." pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do Pix." componentesValor: type: "object" title: "Informações sobre o valor do Pix" description: |- O objetivo dessa estrutura é explicar os elementos de composição do valor do Pix, incluindo informações sobre as multas, juros, descontos e abatimentos quando o Pix for relativo a cobranças com vencimento. Regras da estrutura: - O `valor` do Pix é igual a: - (`original.valor` + `saque.valor` + `troco.valor`) + `multa.valor` + `juros.valor` – `abatimento.valor` – `desconto.valor` considerando-se apenas os campos que estiverem presentes para cada tipo de cobrança pago. - As estruturas `saque` e `troco` só serão retornadas quando o Pix for relativo a um Pix Saque ou Pix Troco, respectivamente, e as demais estruturas (`juros`, `multa`, `abatimento` e `desconto`) só serão pertinentes aos Pix de pagamentos das cobranças com vencimento. - Não pode haver simultaneamente uma subsestrutura do tipo `saque` e outra do tipo `troco`; - Não há restrição na ordem das subestruturas. Para o caso de um Pix Saque pode-se retornar `original` com valor=0.00 (zero) uma vez que a soma será respeitada, ou pode-se omitir a subestrutura original. No caso de um Pix Troco ou de um pagamento de cobrança com vencimento a subsestrutura `original` vai sempre estar presente. #### Exemplos válidos: Exemplo de preenchimentos válidos. - **Pix para pagamento de cobrança imediata (sem saque ou troco).** ``` ... "componentesValor": { "original": { "valor": "100.00" } } ... ``` - **Pix Saque.** ``` ... "componentesValor": { "saque": { "valor": "100.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" } } ... ``` - **Pix para pagamento de cobrança imediata com saque (pode vir original.valor=0.00).** ``` ... "componentesValor": { "original": { "valor": "0.00" }, "saque": { "valor": "100.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" } } ... ``` - **Pix Troco.** ``` ... "componentesValor": { "original": { "valor": "80.00" }, "troco": { "valor": "20.00", "modalidadeAgente": "AGTEC", "prestadorDeServicoDeSaque": "12345678" } } ... ``` - **Pix para pagamento de cobrança imediata com troco (ordem não importa).** ``` ... "componentesValor": { "troco": { "valor": "20.00", "modalidadeAgente": "AGTEC", "prestadorDeServicoDeSaque": "12345678" }, "original": { "valor": "80.00" } } ... ``` - **Pix para pagamento de cobrança com vencimento de R$100,00 considerando-se um atraso de 2 dias a uma multa de 3% e juros de 1% ao dia. O `valor` do Pix será R$105,00.** ``` ... "componentesValor": { "original": { "valor": "100.00" }, "multa": { "valor": "3.00" }, "juros": { "valor": "2.00" } } ... ``` #### Exemplos inválidos: Exemplos, não exaustivos, de preenchimentos inválidos. - **`original.valor` maior que 0.00 (zero) e `saque` juntos** ``` ... "componentesValor": { "original": { "valor": "80.00" }, "saque": { "valor": "20.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" } } ... ``` - **dois elementos de `saque`** ``` ... "componentesValor": [ "saque": { "valor": "20.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" }, "saque": { "valor": "10.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" } ] ... ``` - **saque e troco simultaneamente** ``` ... "componentesValor": { "original": { "valor": "60.00" }, "saque": { "valor": "20.00", "modalidadeAgente": "AGPSS", "prestadorDeServicoDeSaque": "12345678" }, "troco": { "valor": "20.00", "modalidadeAgente": "AGTEC", "prestadorDeServicoDeSaque": "12345678" } } ... ``` anyOf: - $ref: "#/components/schemas/PixValorOriginal" - $ref: "#/components/schemas/PixValorSaque" - $ref: "#/components/schemas/PixValorTroco" - $ref: "#/components/schemas/PixValorJuros" - $ref: "#/components/schemas/PixValorMulta" - $ref: "#/components/schemas/PixValorAbatimento" - $ref: "#/components/schemas/PixValorDesconto" chave: type: "string" title: "Chave DICT do recebedor" description: | # Formato do campo chave * Campo chave do recebedor conforme atribuído na respectiva PACS008. * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP. * O formato das chaves pode ser encontrado na seção "Formatação das chaves do DICT no BR Code" do [Manual de Padrões para iniciação do Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix). maxLength: 77 horario: type: "string" format: "date-time" title: "Horário" description: "Horário em que o Pix foi processado no PSP." infoPagador: type: "string" title: "Informação livre do pagador" maxLength: 140 devolucoes: type: "array" title: "Devoluções" items: $ref: "#/components/schemas/Devolucao" PixAutomatico: type: "object" title: "Pix" required: ["txid","endToEndId", "valor", "horario"] properties: endToEndId: $ref: "#/components/schemas/EndToEndId" txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{1,35}" valor: type: "string" title: "Valor do Pix." pattern: "\\d{1,10}\\.\\d{2}" description: "Valor do Pix." anyOf: - $ref: "#/components/schemas/PixValorOriginal" - $ref: "#/components/schemas/PixValorJuros" - $ref: "#/components/schemas/PixValorMulta" - $ref: "#/components/schemas/PixValorAbatimento" - $ref: "#/components/schemas/PixValorDesconto" horario: type: "string" format: "date-time" title: "Horário" description: "Horário em que o Pix foi processado no PSP." infoPagador: type: "string" title: "Informação livre do pagador" maxLength: 140 devolucoes: type: "array" title: "Devoluções" items: $ref: "#/components/schemas/DevolucaoPixAutomatico" PixValorOriginal: type: "object" properties: original: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor original" description: "Valor original do Pix." pattern: "\\d{1,10}\\.\\d{2}" PixValorSaque: type: "object" properties: saque: type: "object" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] properties: valor: type: "string" title: "Valor do Saque Pix" description: "Valor do Saque Pix." pattern: "\\d{1,10}\\.\\d{2}" modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
AGPSSAgente Facilitador de Serviço de Saque (ATENÇÃO: no mapeamento para o campo 'modalidadeAgente', da pacs.008, esse valor deve ser substituído por AGFSS)
enum: - "AGTEC" - "AGTOT" - "AGPSS" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" PixValorTroco: type: "object" properties: troco: type: "object" required: ["valor", "modalidadeAgente", "prestadorDoServicoDeSaque"] properties: valor: type: "string" title: "Valor do Troco Pix" description: "Valor do Troco Pix." pattern: "\\d{1,10}\\.\\d{2}" modalidadeAgente: type: "string" title: "Modalidade do Agente" description: | ##### Modalidade do Agente
SIGLADescrição
AGTECAgente Estabelecimento Comercial
AGTOTAgente Outra Espécie de Pessoa Jurídica ou Correspondente no País
enum: - "AGTEC" - "AGTOT" prestadorDoServicoDeSaque: type: "string" title: "Facilitador de Serviço de Saque" pattern: "\\d{8}" description: "ISPB do Facilitador de Serviço de Saque" PixValorJuros: type: "object" properties: juros: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor relativo aos juros." description: "Valor dos juros." pattern: "\\d{1,10}\\.\\d{2}" PixValorMulta: type: "object" properties: multa: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor relativo a multa." description: "Valor da multa." pattern: "\\d{1,10}\\.\\d{2}" PixValorDesconto: type: "object" properties: desconto: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor relativo a desconto." description: "Valor do desconto." pattern: "\\d{1,10}\\.\\d{2}" PixValorAbatimento: type: "object" properties: abatimento: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor relativo a abatimento." description: "Valor do abatimento." pattern: "\\d{1,10}\\.\\d{2}" Devolucao: type: "object" title: "Devolução" required: ["id", "rtrId", "valor", "horario", "status"] properties: id: $ref: "#/components/schemas/DevolucaoId" rtrId: type: "string" title: "RtrId" description: "ReturnIdentification que transita na PACS004." example: "D12345678202009091000abcde123456" pattern: "[a-zA-Z0-9]{32}" minLength: 32 maxLength: 32 valor: type: "string" title: "Valor a devolver." pattern: "\\d{1,10}\\.\\d{2}" description: "Valor a devolver." natureza: $ref: "#/components/schemas/DevolucaoNatureza" descricao: type: "string" title: "Mensagem ao pagador relativa à devolução." maxLength: 140 description: "O campo `descricao`, opcional, determina um texto a ser apresentado ao pagador contendo informações sobre a devolução. Esse texto será preenchido, na pacs.004, pelo PSP do recebedor, no campo RemittanceInformation. O tamanho do campo na pacs.004 está limitado a 140 caracteres." horario: type: "object" properties: solicitacao: type: "string" format: "date-time" title: "Horário de solicitação" description: "Horário no qual a devolução foi solicitada no PSP." liquidacao: type: "string" format: "date-time" title: "Horário de liquidacao" description: "Horário no qual a devolução foi liquidada no PSP." status: type: "string" title: "Status" description: "Status da devolução." enum: ["EM_PROCESSAMENTO", "DEVOLVIDO", "NAO_REALIZADO"] motivo: type: "string" title: "Descrição do status." description: | # Status da Devolução Campo opcional que pode ser utilizado pelo PSP recebedor para detalhar os motivos de a devolução ter atingido o status em questão. Pode ser utilizado, por exemplo, para detalhar o motivo de a devolução não ter sido realizada. maxLength: 140 DevolucaoPixAutomatico: type: "object" title: "Devolução" required: ["id", "rtrId", "valor", "horario", "status"] properties: id: $ref: "#/components/schemas/DevolucaoId" rtrId: type: "string" title: "RtrId" description: "ReturnIdentification que transita na PACS004." example: "D12345678202009091000abcde123456" pattern: "[a-zA-Z0-9]{32}" minLength: 32 maxLength: 32 valor: type: "string" title: "Valor a devolver." pattern: "\\d{1,10}\\.\\d{2}" description: "Valor a devolver." natureza: $ref: "#/components/schemas/DevolucaoNaturezaPixAutomatico" descricao: type: "string" title: "Mensagem ao pagador relativa à devolução." maxLength: 140 description: "O campo `descricao`, opcional, determina um texto a ser apresentado ao pagador contendo informações sobre a devolução. Esse texto será preenchido, na pacs.004, pelo PSP do recebedor, no campo RemittanceInformation. O tamanho do campo na pacs.004 está limitado a 140 caracteres." horario: type: "object" properties: solicitacao: type: "string" format: "date-time" title: "Horário de solicitação" description: "Horário no qual a devolução foi solicitada no PSP." liquidacao: type: "string" format: "date-time" title: "Horário de liquidacao" description: "Horário no qual a devolução foi liquidada no PSP." status: type: "string" title: "Status" description: "Status da devolução." enum: ["EM_PROCESSAMENTO", "DEVOLVIDO", "NAO_REALIZADO"] motivo: type: "string" title: "Descrição do status." description: | # Status da Devolução Campo opcional que pode ser utilizado pelo PSP recebedor para detalhar os motivos de a devolução ter atingido o status em questão. Pode ser utilizado, por exemplo, para detalhar o motivo de a devolução não ter sido realizada. maxLength: 140 DevolucaoSolicitada: type: "object" required: ["valor"] properties: valor: type: "string" title: "Valor" pattern: "\\d{1,10}\\.\\d{2}" description: "Valor solicitado para devolução. A soma dos valores de todas as devolucões não podem ultrapassar o valor total do Pix." natureza: $ref: "#/components/schemas/DevolucaoSolicitadaNatureza" descricao: type: "string" title: "Mensagem ao pagador relativa à devolução." description: "O campo `descricao`, opcional, determina um texto a ser apresentado ao pagador contendo informações sobre a devolução. Esse texto será preenchido, na pacs.004, pelo PSP do recebedor, no campo RemittanceInformation. O tamanho do campo na pacs.004 está limitado a 140 caracteres." maxLength: 140 ParametrosConsultaPayloadLocation: type: "object" title: "Parâmetros de consulta de locations" description: "Parâmetros utilizados para a realização de uma consulta de locations." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-01-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-12-01T17:00:00Z" txIdPresente: type: "boolean" description: "Filtro pela existência de txid." tipoCob: type: "string" enum: - "cob" - "cobv" paginacao: $ref: "#/components/schemas/Paginacao" ParametrosConsultaPayloadLocationRec: type: "object" title: "Parâmetros de consulta de locations" description: "Parâmetros utilizados para a realização de uma consulta de locations." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-01-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-12-01T17:00:00Z" idRecPresente: type: "boolean" description: "Filtro pela existência de id da recorrência." paginacao: $ref: "#/components/schemas/Paginacao" PayloadLocationConsultadas: type: "object" title: "Locations Consultadas" required: ["parametros", "loc"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaPayloadLocation" loc: type: "array" title: "Lista de locations cadastradas" items: allOf: - $ref: "#/components/schemas/PayloadLocationCompleta" PayloadLocationRecConsultadas: type: "object" title: "Locations Consultadas" required: ["parametros", "loc"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaPayloadLocationRec" loc: type: "array" title: "Lista de locations cadastradas" items: allOf: - $ref: "#/components/schemas/PayloadLocationRecCompleta" ParametrosConsultaPix: type: "object" title: "Parâmetros de Consulta Pix" description: "Parâmetros utilizados para a realização de uma consulta de Pix." required: ["inicio", "fim", "paginacao"] properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-01-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-12-01T17:00:00Z" txid: allOf: - $ref: "#/components/schemas/TxId" - pattern: "[a-zA-Z0-9]{1,35}" txIdPresente: type: "boolean" description: "Filtro pela existência de txid." devolucaoPresente: type: "boolean" description: "Filtro pela existência de devolução." cpf: type: "string" pattern: "/^\\d{11}$/" description: "CPF" cnpj: type: "string" pattern: "/^\\d{14}$/" description: "CNPJ" paginacao: $ref: "#/components/schemas/Paginacao" ParametrosConsultaWebhooks: type: "object" title: "Parâmetros de Consulta de Webhooks" description: "Parâmetros utilizados para a realização de uma consulta de Webhooks." properties: inicio: type: "string" format: "date-time" title: "Data de Início" description: "Data inicial utilizada na consulta. Respeita RFC 3339." example: "2020-01-01T00:00:00Z" fim: type: "string" format: "date-time" title: "Data de Fim" description: "Data de fim utilizada na consulta. Respeita RFC 3339." example: "2020-12-01T17:00:00Z" paginacao: $ref: "#/components/schemas/Paginacao" PixConsultados: type: "object" title: "Pix Consultados" required: ["parametros", "cobs"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaPix" pix: type: "array" title: "Lista de Pix recebidos" items: allOf: - $ref: "#/components/schemas/Pix" WebhooksConsultados: type: "object" title: "Webhooks Consultados" required: ["webhooks"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaWebhooks" webhooks: type: "array" title: "Lista de Webhooks consultados" items: allOf: - $ref: "#/components/schemas/WebhookCompleto" WebhooksRecConsultados: type: "object" title: "Webhooks de Recorrências Consultados" required: ["webhooksrec"] properties: parametros: $ref: "#/components/schemas/ParametrosConsultaWebhooks" webhooksrec: type: "array" title: "Lista de Webhooks de Recorrências consultados" items: allOf: - $ref: "#/components/schemas/WebhookRecCompleto" Paginacao: type: "object" title: "Paginação" required: [ "paginaAtual", "itensPorPagina", "quantidadeDePaginas", "quantidadeTotalDeItens", ] properties: paginaAtual: type: "integer" title: "Página atual" description: "Número da página recuperada." minimum: 0 itensPorPagina: type: "integer" title: "Itens por página" description: "Quantidade de registros retornado na página." minimum: 1 quantidadeDePaginas: type: "integer" title: "Quantidade de páginas" description: "Quantidade de páginas disponíveis para consulta." minimum: 1 quantidadeTotalDeItens: type: "integer" title: "Quantidade total de itens" description: "Quantidade total de itens disponíveis de acordo com os parâmetros informados." minimum: 0 Violacao: type: "object" title: "Violações" properties: razao: type: "string" title: "Descrição do erro" description: "Descrição do erro" example: "Valor da cobrança não pode ser 0.00" propriedade: type: "string" title: "Nome da propriedade" description: "Nome da propriedade" example: "cob.chave" valor: type: "string" title: "Valor da propriedade" description: "Valor da propriedade" example: "061996671234" Problema: type: object required: ["type", "title", "status"] properties: type: type: string format: uri description: "URI de referência que identifica o tipo de problema. De acordo com a RFC 7807." example: "https://pix.bcb.gov.br/api/v2/error/NaoEncontrado" title: type: string description: "Descrição resumida do problema." example: Not found status: type: integer description: "Código HTTP do status retornado." example: 404 detail: type: string description: "Descrição completa do problema." correlationId: type: string description: Identificador de correlação do problema para fins de suporte violacoes: type: array items: $ref: "#/components/schemas/Violacao" Inicio: type: "string" format: "date-time" title: "Data de início" description: "Filtra os registros cuja data de criação seja maior ou igual que a data de início. Respeita RFC 3339." Fim: type: "string" format: "date-time" title: "Data de fim" description: "Filtra os registros cuja data de criação seja menor ou igual que a data de fim. Respeita RFC 3339." parameters: paginaAtual: in: "query" name: "paginacao.paginaAtual" required: false schema: type: "integer" format: "int32" title: "Página atual" minimum: 0 default: 0 description: "Página a ser retornada pela consulta. Se não for informada, o PSP assumirá que será 0." itensPorPagina: in: "query" name: "paginacao.itensPorPagina" required: false schema: type: "integer" format: "int32" title: "Itens por Página" minimum: 1 maximum: 1000 default: 100 description: "Quantidade máxima de registros retornados em cada página. Apenas a última página pode conter uma quantidade menor de registros." responses: RequisicaoInvalida: description: "Problemas na requisição." content: application/json: schema: $ref: "#/components/schemas/Problema" NaoEncontrado: description: "Recurso solicitado não foi encontrado." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/NaoEncontradoExample1" AcessoNegado: description: "Requisição de participante autenticado que viola alguma regra de autorização." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/AcessoNegadoExample1" ServicoIndisponivel: description: "Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento." content: application/problem+json: schema: $ref: "#/components/schemas/Problema" examples: exemplo1: $ref: "#/components/examples/ServicoIndisponivelExample1"