{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-cob-rgerada-schema.json",
  "title": "Cobrança Recorrente Gerada",
  "description": "Dados criados ou alterados da cobrança recorrente via API Pix",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citi-cobr-api-openapi.yml#/components/schemas/CobRGerada",
  "type": "object",
  "required": [
    "idRec",
    "txid",
    "status",
    "valor",
    "recebedor",
    "calendario"
  ],
  "allOf": [
    {
      "type": "object",
      "properties": {
        "idRec": {
          "$ref": "#/$defs/RecId"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "txid": {
          "$ref": "#/$defs/TxId"
        }
      }
    },
    {
      "$ref": "#/$defs/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."
            }
          }
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "recebedor": {
          "allOf": [
            {
              "$ref": "#/$defs/PessoaJuridicaRecorrencia"
            }
          ]
        }
      }
    },
    {
      "$ref": "#/$defs/CobRStatus"
    },
    {
      "$ref": "#/$defs/DadosDevedorRecorrencia"
    }
  ],
  "$defs": {
    "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.",
          "minLength": 1,
          "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 vencimento da cobrança."
            }
          }
        },
        "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 prevista para liquidação para próximo dia útil",
          "default": false,
          "description": "Campo de ativação do ajuste da data prevista para liquidação para próximo dia útil caso o vencimento corrente seja um dia não útil. O PSP Recebedor deverá considerar os feriados locais com base no código município do usuário pagador."
        },
        "recebedor": {
          "title": "Recebedor",
          "description": "O objeto recebedor organiza as informações sobre o recebedor da cobrança.",
          "allOf": [
            {
              "$ref": "#/$defs/DadosBancariosRecebedor"
            }
          ]
        }
      }
    },
    "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"
          ]
        }
      }
    },
    "DadosBancariosRecebedor": {
      "type": "object",
      "required": [
        "conta",
        "tipoConta"
      ],
      "properties": {
        "conta": {
          "type": "string",
          "title": "Conta",
          "description": "Número da conta do usuário recebedor.",
          "minLength": 1,
          "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",
          "title": "Agencia",
          "description": "Número da agência do usuário recebedor.",
          "minLength": 1,
          "maxLength": 4
        }
      }
    },
    "DadosComplementaresPessoa": {
      "type": "object",
      "properties": {
        "logradouro": {
          "type": "string",
          "title": "Logradouro",
          "description": "Logradouro do usuário.",
          "minLength": 1,
          "maxLength": 200
        },
        "cidade": {
          "type": "string",
          "title": "Cidade",
          "description": "Cidade do usuário.",
          "minLength": 1,
          "maxLength": 200
        },
        "uf": {
          "type": "string",
          "title": "UF",
          "description": "UF do usuário.",
          "minLength": 2,
          "maxLength": 2
        },
        "cep": {
          "type": "string",
          "title": "CEP",
          "description": "CEP do usuário.",
          "minLength": 8,
          "maxLength": 8
        }
      }
    },
    "DadosDevedorRecorrencia": {
      "type": "object",
      "properties": {
        "devedor": {
          "title": "Devedor",
          "description": "O objeto devedor organiza as informações sobre o devedor da recorrência.",
          "allOf": [
            {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "title": "Email",
                  "pattern": "[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$",
                  "description": "Email do usuário."
                }
              }
            },
            {
              "$ref": "#/$defs/DadosComplementaresPessoa"
            }
          ]
        }
      }
    },
    "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.",
          "minLength": 1,
          "maxLength": 140
        }
      }
    },
    "RecId": {
      "type": "string",
      "title": "ID Recorrência",
      "description": "# Identificador da Recorrência\n\nRegra de formação:\n- RAxxxxxxxxyyyyMMddkkkkkkkkkkk (29 caracteres; \"case sensitive\", isso é, diferencia letras maiúsculas e minúsculas), sendo:\n  - \"R\":  fixo (1 caractere). \"R\" para a recorrência criada dentro do Pix;\n  - \"A\": identificação da possibilidade de novas tentativas, sendo possíveis os valores \"R\" ou \"N\" (1 caractere). \"R\" caso a recorrência permita novas tentativas de pagamento pós vencimento, ou \"N\" caso não permita novas tentativas.\n  - \"xxxxxxxx\":  identificação do agente que presta serviço para o usuário recebedor que gerou o <Id>, 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]);\n  - \"yyyyMMdd\":  data (8 caracteres) de criação da recorrência;\n  - \"kkkkkkkkkkk\": sequencial criado pelo agente que gerou o <Id> (11 caracteres alfanuméricos [a-z|A-Z|0-9]). Deve ser único dentro de cada \"yyyyMMdd\".\n\nDessa forma, o ID da recorrência deve ser formado de acordo com um dos tipos a seguir:\n- \"RRxxxxxxxxyyyyMMddkkkkkkkkkkk\"; para recorrência criada dentro do Pix e que permite novas tentativas de pagamento pós vencimento; ou\n- \"RNxxxxxxxxyyyyMMddkkkkkkkkkkk\"; para recorrência criada dentro do Pix e que não permite novas tentativas de pagamento pós vencimento.”\n",
      "pattern": "[a-zA-Z0-9]{29}",
      "minLength": 29,
      "maxLength": 29
    },
    "TxId": {
      "type": "string",
      "title": "Id da Transação",
      "description": "# Identificador da transação\n\nO campo `txid` determina o identificador da transação.\nO objetivo desse campo é ser um elemento que possibilite ao PSP do recebedor apresentar ao usuário recebedor a funcionalidade de conciliação de pagamentos.\n\nNa pacs.008, é referenciado como `TransactionIdentification <txId>` ou `idConciliacaoRecebedor`.\n\nEm termos de fluxo de funcionamento, o txid é lido pelo aplicativo do PSP do pagador e, \ndepois de confirmado o pagamento, é enviado para o SPI via pacs.008. \nUma pacs.008 também é enviada ao PSP do recebedor, contendo, além de todas as informações usuais \ndo pagamento, o txid.\nAo perceber um recebimento dotado de txid, o PSP do recebedor está apto a se comunicar com o usuário recebedor, \ninformando que um pagamento específico foi liquidado.\n\nO txid é criado exclusivamente pelo usuário recebedor e está sob sua responsabilidade.\nO txid, no contexto de representação de uma cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao \nPSP recebedor validar essa regra na API Pix.\n",
      "pattern": "[a-zA-Z0-9]{26,35}",
      "minLength": 26,
      "maxLength": 35
    }
  }
}