﻿openapi: 3.0.0
info:
  title: API Credit-cards-accounts - Open Banking Brasil
  description: |
    API de contas de pagamento pós-pagas do Open Banking Brasil – Fase 2.
    API que retorna informações de contas de pagamento pós-paga mantidas nas instituições transmissoras por seus clientes, incluindo dados como denominação, produto, bandeira, limites de crédito, informações sobre transações de pagamento efetuadas e faturas.

    Não possui segregação entre pessoa natural e pessoa jurídica. Requer consentimento do cliente para todos os `endpoints`. 

    Permissions necessárias para a API Credit-cards-accounts

    Para cada um dos paths desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas:

    ### `/accounts`
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_READ**
    ### `/accounts/{creditCardAccountId}`
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_READ**
    ### `/accounts/{creditCardAccountId}/bills`
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_BILLS_READ**
    ### `/accounts/{creditCardAccountId}/{billId}/transactions`
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_BILLS_TRANSACTIONS_READ**
    ### `/accounts/{creditCardAccountId}/limits`        
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_LIMITS_READ**
    ### `/accounts/{creditCardAccountId}/transactions`
      - permissions:
        - GET: **CREDIT_CARDS_ACCOUNTS_TRANSACTIONS_READ**
  version: 1.0.0
  license:
    name: Apache 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
  contact:
    name: Governança do Open Banking Brasil – Interfaces
    email: gt-interfaces@openbankingbr.org
    url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
  - url: 'https://api.banco.com.br/open-banking/credit-cards-accounts/v1'
    description: Servidor de Produção
  - url: 'https://apih.banco.com.br/open-banking/credit-cards-accounts/v1'
    description: Servidor de Homologação
tags:
  - name: Credit Card
    description: Operações para listagem das informações de Cartão de Crédito
paths:
  /accounts:
    get:
      tags:
        - Credit Card
      summary: Conjunto de informações das Contas de pagamento pós paga
      description: Método para obter a lista de contas de pagamento pós-paga mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento
      operationId: getAccounts
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsList'
      security:
        - OpenId:
            - openId
            - credit-cards-accounts
  '/accounts/{creditCardAccountId}':
    get:
      tags:
        - Credit Card
      summary: Obtém os dados de identificação da conta identificada por creditCardAccountId.
      description: Método para obter os dados de identificação da conta de pagamento pós-paga identificada por creditCardAccountId mantida pelo cliente na instituição transmissora.
      operationId: getAccountsCreditCardAccountId
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/creditCardAccountId'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsIdentification'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsIdentification'
      security:
        - OpenId:
            - openId
            - credit-cards-accounts
  '/accounts/{creditCardAccountId}/bills':
    get:
      tags:
        - Credit Card
      summary: Obtém a lista de faturas da conta identificada por creditCardAccountId.
      description: Método para obter a lista de faturas da conta de pagamento pós-paga identificada por creditCardAccountId mantida pelo cliente na instituição transmissora.
      operationId: getAccountsCreditCardAccountIdBills
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/creditCardAccountId'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/fromDueDate'
        - $ref: '#/components/parameters/toDueDate'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsBills'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsBills'
      security:
        - OpenId:
            - openId
            - credit-cards-accounts
  '/accounts/{creditCardAccountId}/bills/{billId}/transactions':
    get:
      tags:
        - Credit Card
      summary: Obtém a lista de transações da conta identificada por creditCardAccountId e billId.
      description: Método para obter a lista de transações da conta de pagamento pós-paga identificada por creditCardAccountId e billId mantida pelo cliente na instituição transmissora.
      operationId: getAccountsCreditCardAccountIdBillIdTransactions
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/creditCardAccountId'
        - $ref: '#/components/parameters/billId'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/fromTransactionDate'
        - $ref: '#/components/parameters/toTransactionDate'
        - $ref: '#/components/parameters/creditCardTransactionType'
        - $ref: '#/components/parameters/creditCardPayeeMCC'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsTransactions'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsTransactions'
      security:
        - OpenId:
            - openId
            - credit-cards-accounts
  '/accounts/{creditCardAccountId}/limits':
    get:
      tags:
        - Credit Card
      summary: |
        Obtém os limites da conta identificada por creditCardAccountId.
      description: |
        Método para obter os limites da conta de pagamento pós-paga identificada por creditCardAccountId mantida pelo cliente na instituição transmissora.
      operationId: getAccountsCreditCardAccountIdLimits
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/creditCardAccountId'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsLimits'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsLimits'
      security:
        - OpenId:
            - openId
            - credit-cards-accounts
  '/accounts/{creditCardAccountId}/transactions':
    get:
      tags:
        - Credit Card
      summary: Obtém a lista de transações da conta identificada por creditCardAccountId.
      description: Método para obter a lista de transações da conta de pagamento pós-paga identificada por creditCardAccountId mantida pelo cliente na instituição transmissora.
      operationId: getAccountsCreditCardAccountIdTransactions
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/creditCardAccountId'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/fromTransactionDate'
        - $ref: '#/components/parameters/toTransactionDate'
        - $ref: '#/components/parameters/creditCardTransactionType'
        - $ref: '#/components/parameters/creditCardPayeeMCC'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseCreditCardAccountsTransactions'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseCreditCardAccountsTransactions'
      security:
        - OpenId:
            - openId
            - credit-card-accounts
components:
  schemas:
    CreditCardAccountsBillsData:
      type: object
      description: Conjunto das informações referentes a fatura associada à conta de pagamento pós-paga
      required:
        - currency
        - dueDate
        - payments
        - billIdentification
      properties:
        currency:
          type: string
          pattern: '^(\w{3}){1}$'
          maxLength: 3
          description: |
            Moeda referente ao valor de todas transações relacionadas com fatura da conta de pagamento pós-paga, segundo modelo ISO-4217. p.ex. 'BRL' 
            Todos os saldos informados estão representados com a moeda vigente do Brasil.
          example: BRL
        dueDate:
          description: 'Data de vencimento da Fatura, que aparece para pagamento pelo cliente'
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardAccountsBillsPayment'
          minItems: 1
          maxItems: 2
          description: Lista que traz os valores relativos aos pagamentos da Fatura da conta de pagamento pós-paga
        billIdentification:
          description: Informação que identifica a fatura
          type: string
          maxLength: 100
          example: 3459087XXZTR
      additionalProperties: false
    CreditCardAccountsBillsFinanceCharge:
      type: object
      required:
        - type
        - amount
      properties:
        type:
          $ref: '#/components/schemas/EnumCreditCardAccountsFinanceChargeType'
        additionalInfo:
          type: string
          maxLength: 44
          pattern: \w*\W*
          description: 'Campo livre, de preenchimento obrigatório se selecionado tipo de encargo ''OUTROS'''
        amount:
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          maxLength: 19
          minLength: 0
          example: 100000.04
          description: Valor cobrado pelo encargo. Expresso em valor monetário com 4 casas decimais
      additionalProperties: false
    CreditCardAccountsBillsPayment:
      type: object
      required:
        - transactionName
        - paymentDate
        - paymentMode
        - valueType
        - amount
        - financeCharges
      properties:
        transactionName:
          type: string
          maxLength: 100
          pattern: \w*\W*
          description: Campo de livre preenchimento. Literal usada na instituição financeira para identificar a transação
        paymentDate:
          description: Data efetiva de quando o Pagamento da fatura foi realizado
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
        paymentMode:
          $ref: '#/components/schemas/EnumCreditCardAccountsPaymentMode'
        valueType:
          $ref: '#/components/schemas/EnumCreditCardAccountsBillingValueType'
        amount:
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          maxLength: 19
          minLength: 0
          example: 100000.04
          description: Valor da transação. Expresso em valor monetário com 4 casas decimais
        financeCharges:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardAccountsBillsFinanceCharge'
          minItems: 1
          description: Lista dos encargos cobrados na fatura
      additionalProperties: false
    CreditCardAccountsData:
      type: object
      description: Conjunto de informações das Contas de pagamento pós paga
      required:
        - brandID
        - brandName
        - companyCnpj
        - name
        - productType
        - creditCardNetwork
        - creditCardAccountId
      properties:
        brandID:
          type: string
          description: 'Identifica a Marca reportada pelo participante do Open Banking. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.'
          maxLength: 100
          pattern: \w*\W*
          example: '29698749425984912674'
        brandName:
          type: string
          description: 'Nome da Marca reportada pelo participante do Open Banking. O conceito a que se refere a ''marca'' é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes'
          pattern: \w*\W*
          maxLength: 80
          example: Organização A
        companyCnpj:
          type: string
          description: 'Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara'
          pattern: '\d{14}|^NA$'
          maxLength: 14
          example: '21128159000166'
        name:
          type: string
          description: 'Denominação/Identificação do nome da conta de pagamento pós-paga (cartão). Conforme CIRCULAR Nº 3.680,BCB, 2013: ''conta de pagamento pós-paga: destinada à execução de transações de pagamento que independem do aporte prévio de recursos'
          pattern: \w*\W*
          maxLength: 50
          example: Cartão Universitário
        productType:
          $ref: '#/components/schemas/EnumCreditCardAccountsProductType'
        productAdditionalInfo:
          type: string
          description: Informações complementares se tipo de Cartão 'OUTROS'
          pattern: \w*\W*
          maxLength: 50
        creditCardNetwork:
          $ref: '#/components/schemas/EnumCreditCardAccountNetwork'
        networkAdditionalInfo:
          type: string
          description: Texto livre para especificar categoria de bandeira marcada como 'OUTRAS'
          pattern: \w*\W*
          maxLength: 50
          example: NA
        creditCardAccountId:
          type: string
          description: Um identificador único e imutável usado para identificar o recurso da conta de pagamento pós paga. Este identificador não tem significado para o proprietário da conta
          maxLength: 100
          example: XXZTR3459087
      additionalProperties: false
    CreditCardAccountsLimitsData:
      type: object
      description: Conjunto de informações referentes aos limites da conta de pagamento pós-paga
      required:
        - currency
        - creditLineLimitType
        - consolidationType
        - identificationNumber
        - isLimitFlexible
        - limitAmount
        - usedAmount
      properties:
        currency:
          type: string
          description: |
            Moeda referente ao saldo informado, segundo modelo ISO-4217. p.ex. 'BRL.'
            Todos os saldos informados estão representados com a moeda vigente do Brasil
          maxLength: 3
          pattern: '^(\w{3}){1}$'
          example: BRL
        creditLineLimitType:
          $ref: '#/components/schemas/EnumCreditCardAccountsLineLimitType'
        consolidationType:
          $ref: '#/components/schemas/EnumCreditCardAccountsConsolidationType'
        identificationNumber:
          type: number
          description: |
            Número de identificação do cartão:  corresponde aos 4 últimos dígitos para PF, preencher com um identificador para PJ, com as caracteristicas definidas para os ID´s no Open Banking.
          maxLength: 4
          example: 4453
          minimum: 1
          maximum: 9999
        lineName:
          $ref: '#/components/schemas/EnumCreditCardAccountsLineName'
        lineNameAdditionalInfo:
          type: string
          pattern: \w*\W*
          description: Campo de preenchimento obrigatório se selecionada a opção 'OUTRAS' em lineName
        isLimitFlexible:
          type: boolean
          description: 'Indicador que permite informar se a operação de crédito é: com limite ou com limite flexível. Se aplica somente se for Limite Modalidade de operação. Opção "SEM_LIMITE" se aplica somente para a Modalidade "CREDITO_A_VISTA"'
          example: true
        limitAmount:
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          description: Valor total do limite informado Expresso em valor monetário com 4 casas decimais
          maxLength: 19
          minLength: 0
          example: 100000.0001
        usedAmount:
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          description: Valor utilizado do limite informado Expresso em valor monetário com 4 casas decimais
          maxLength: 19
          minLength: 0
          example: 100000.04
      additionalProperties: false
    CreditCardsAccountPaymentMethod:
      type: object
      description: Conjunto de informações relativas aos Meios de Pagamento da Conta de pagamento pós-paga
      required:
        - identificationNumber
        - isMultipleCreditCard
      properties:
        identificationNumber:
          type: number
          description: |
            Número de identificação do cartão:  corresponde aos 4 últimos dígitos para PF, preencher com um identificador para PJ, com as caracteristicas definidas para os ID´s no Open Banking.
          maxLength: 4
          example: 4453
          minimum: 1
          maximum: 9999
        isMultipleCreditCard:
          type: boolean
          description: |
            Informa se a conta de Pagamento pós paga é Múltipla. "Cartões denominados múltiplos possuem tanto a função crédito quanto a débito, devendo o proprietário do cartão, no momento de sua utilização, informar se o pagamento é na função crédito (que leva a um pagamento futuro, por meio de uma fatura do cartão de crédito) ou na função débito".
            Fonte: Tipos de cartão - Banco Central do Brasil www.bcb.gov.br › port › folder_serie_I_tipos_de_cartao
          example: true
      additionalProperties: false
    CreditCardAccountsTransaction:
      type: object
      description: Lista que traz os valores relativos aos saldos do Limite de crédito total da conta de pagamento pós-paga
      required:
        - identificationNumber
        - transactionName
        - billIdentification
        - creditDebitType
        - transactionType
        - chargeIdentificator
        - chargeNumber
        - brazilianAmount
        - amount
        - currency
        - transactionDate
        - billPostDate
      properties:
        identificationNumber:
          type: number
          description: |
            Número de identificação do cartão:  corresponde aos 4 últimos dígitos para PF, preencher com um identificador para PJ, com as caracteristicas definidas para os ID´s no Open Banking.
          maxLength: 4
          example: 4453
          minimum: 1
          maximum: 9999
        lineName:
          $ref: '#/components/schemas/EnumCreditCardAccountsLineName'
        transactionName:
          type: string
          maxLength: 100
          description: Campo de livre preenchimento. Literal usada na instituição financeira para identificar a transação
          example: PGTO
        billIdentification:
          type: string
          maxLength: 100
          description: Informação que identifica a fatura onde consta a transação informada.
          example: 3459087XXZTR
        creditDebitType:
          $ref: '#/components/schemas/EnumCreditDebitIndicator'
        transactionType:
          $ref: '#/components/schemas/EnumCreditCardTransactionType'
        transactionalAdditionalInfo:
          type: string
          description: 'Campo livre, de preenchimento obrigatório quando selecionado tipo de transação ''OUTROS'''
          maxLength: 140
        paymentType:
          $ref: '#/components/schemas/EnumCreditCardAccountsPaymentType'
        feeType:
          $ref: '#/components/schemas/EnumCreditCardAccountFee'
        feeTypeAdditionalInfo:
          type: string
          maxLength: 140
          description: 'Campo livre, de preenchimento obrigatório quando selecionada tipo de tarifa ''OUTRA'''
        otherCreditsType:
          $ref: '#/components/schemas/EnumCreditCardAccountsOtherCreditType'
        otherCreditsAdditionalInfo:
          type: string
          maxLength: 50
          description: 'Campo livre, de preenchimento obrigatório quando selecionado tipo de crédito ''OUTROS'''
        chargeIdentificator:
          type: string
          description: Identificador da parcela que está sendo informada. Campo de livre preenchimento
          maxLength: 50
          pattern: \w*\W*
          example: PARCELA_1
        chargeNumber:
          type: number
          description: Quantidade de parcelas
          maxLength: 2
          example: 3
        brazilianAmount:
          description: 'Valor da transação expresso em valor monetário com 4 casas decimais, em moeda corrente do Brasil'
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          maxLength: 19
          minLength: 0
          example: 100000.04
        amount:
          description: Valor da transação efetuada no exterior e convertida em moeda nacional com 4 casas decimais. Expresso em valor monetário com 4 casas decimais
          type: number
          format: double
          pattern: '(-?\d{15}(.\d{4}?))$'
          maxLength: 19
          minLength: 0
          example: 100000.04
        currency:
          type: string
          maxLength: 3
          description: |
            Moeda referente ao valor da transação, se a operação foi efeuatda em moeda  estrangeira, segundo modelo ISO-4217.
            Todos os valores informados estão representados com a moeda vigente do Brasil
          pattern: '^(\w{3}){1}$'
          example: BRL
        transactionDate:
          description: Data original da transação
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
        billPostDate:
          description: Data na que a transação foi inserida na fatura
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
        payeeMCC:
          type: number
          description: |
            O MCC ou o código da categoria do estabelecimento comercial. Os MCCs são agrupados segundo suas similaridades. O MCC é usado para classificar o negócio pelo tipo fornecido de bens ou serviços. Os MCCs são atribuídos por tipo de comerciante (por exemplo, um para hotéis, um para lojas de materiais de escritório, etc.) ou por nome de comerciante (por exemplo, 3000 para a United Airlines).
          maxLength: 4
          example: 5137
      additionalProperties: false
    EnumCreditCardAccountFee:
      type: string
      description: |
        Traz os tipos de Tarifas: (Vide Enum)
        Anuidade, Saque com cartão no Brasil, Saque com cartão no exterior, Avaliação emergencial de crédito, Emissão segunda via, Tarifa pagamento de contas, SMS, OUTRA
      enum:
        - ANUIDADE
        - SAQUE_CARTAO_BRASIL
        - SAQUE_CARTAO_EXTERIOR
        - AVALIACAO_EMERGENCIAL_CREDITO
        - EMISSAO_SEGUNDA_VIA
        - TARIFA_PAGAMENTO_CONTAS
        - SMS
        - OUTRA
      example: ANUIDADE
    EnumCreditCardAccountsBillingValueType:
      type: string
      description: |
        Traz os tipos dos valores relativos aos pagamentos da fatura da conta de pagamento pós-paga:
        - Valor de pagamento mínimo da fatura
        - Valor de pagamento total da fatura 
        - Valor de pagamento da fatura com parcelamento
        - Outro Valor pago na fatura
      enum:
        - VALOR_PAGAMENTO_MINIMO_FATURA
        - VALOR_PAGAMENTO_TOTAL_FATURA
        - VALOR_PAGAMENTO_FATURA_PARCELADO
        - OUTRO_VALOR_PAGO_FATURA
    EnumCreditCardAccountsConsolidationType:
      type: string
      description: Indicador que permite informar se o valor do limite é consolidado ou individual.
      enum:
        - CONSOLIDADO
        - INDIVIDUAL
      example: CONSOLIDADO
    EnumCreditCardAccountsFinanceChargeType:
      type: string
      description: |
        Traz a denominação dos Encargos que 
        incidem na fatura da conta de pagamento pós-paga. (Vide Enum)
        - Juros remuneratórios por atraso no pagamento da fatura
        - Multa por atraso no pagamento da fatura
        - Juros de mora por atraso no pagamento da fatura
        - IOF
        - Sem Encargo
        - Outros
      enum:
        - JUROS_REMUNERATORIOS_ATRASO_PAGAMENTO_FATURA
        - MULTA_ATRASO_PAGAMENTO_FATURA
        - JUROS_MORA_ATRASO_PAGAMENTO_FATURA
        - IOF
        - SEM_ENCARGO
        - OUTROS
    EnumCreditCardAccountsLineLimitType:
      type: string
      description: Indicador do tipo de limite
      enum:
        - LIMITE_CREDITO_TOTAL
        - LIMITE_CREDITO_MODALIDADE_OPERACAO
      example: LIMITE_CREDITO_TOTAL
    EnumCreditCardAccountsLineName:
      type: string
      description: Modalidade de operação - Lista de   Modalidades de Operação relacionadas às Contas de Pagamento Pós-Pagas
      enum:
        - CREDITO_A_VISTA
        - SAQUE_CREDITO_BRASIL
        - SAQUE_CREDITO_EXTERIOR
        - EMPRESTIMO_CARTAO_CONSIGNADO
        - OUTRAS
      example: CREDITO_A_VISTA
    EnumCreditCardAccountNetwork:
      type: string
      description: |
        Categoria de Bandeiras de Cartões de Crédito (Instituidor do arranjo de pagamento).
        Bandeira é a detentora de todos os direitos e deveres da utilização da marca estampada no cartão, inclusive as bandeiras pertencentes aos emissores.
      maxLength: 17
      enum:
        - VISA
        - MASTERCARD
        - AMERICAN_EXPRESS
        - DINERS_CLUB
        - HIPERCARD
        - BANDEIRA_PROPRIA
        - CHEQUE_ELETRONICO
        - ELO
        - OUTRAS
      example: VISA
    EnumCreditCardAccountsOtherCreditType:
      type: string
      description: Traz outros tipos de crédito contratados no cartão.
      enum:
        - CREDITO_ROTATIVO
        - PARCELAMENTO_FATURA
        - EMPRESTIMO
        - OUTROS
      example: CREDITO_ROTATIVO
    EnumCreditCardAccountsPaymentMode:
      type: string
      description: |
        Traz as formas de efetivação do pagamento realizado: 
        - Débito em conta corrente
        - Boleto bancário
        - Averbação em folha
        - PIX
      enum:
        - DEBITO_CONTA_CORRENTE
        - BOLETO_BANCARIO
        - AVERBACAO_FOLHA
        - PIX
    EnumCreditCardAccountsPaymentType:
      type: string
      description: Traz os tipos de pagamento
      enum:
        - A_VISTA
        - PARCELADO
      example: A_VISTA
    EnumCreditCardAccountsProductType:
      type: string
      description: 'Categoria atribuída a um cartão de pagamento, sob uma certa denominação, que lhe agrega um conjunto de vantagens, diferenciando-o de acordo com o perfil do portador.'
      maxLength: 26
      enum:
        - CLASSIC_NACIONAL
        - CLASSIC_INTERNACIONAL
        - GOLD
        - PLATINUM
        - INFINITE
        - ELECTRON
        - STANDARD_NACIONAL
        - STANDARD_INTERNACIONAL
        - ELETRONIC
        - BLACK
        - REDESHOP
        - MAESTRO_MASTERCARD_MAESTRO
        - GREEN
        - BLUE
        - BLUEBOX
        - PROFISSIONAL_LIBERAL
        - CHEQUE_ELETRONICO
        - CORPORATIVO
        - EMPRESARIAL
        - COMPRAS
        - BASICO_NACIONAL
        - BASICO_INTERNACIONAL
        - NANQUIM
        - GRAFITE
        - MAIS
        - OUTROS
      example: OUTROS
    EnumCreditCardTransactionType:
      type: string
      description: Traz os tipos de Transação
      enum:
        - PAGAMENTO
        - TARIFA
        - OPERACOES_CREDITO_CONTRATADAS_CARTAO
        - ESTORNO
        - CASHBACK
        - OUTROS
      example: CASHBACK
    EnumCreditDebitIndicator:
      type: string
      description: |
        Indicador do tipo de lançamento: 
        - Crédito
        - Débito
      maxLength: 7
      enum:
        - CREDITO
        - DEBITO
      example: DEBITO
    Links:
      type: object
      description: Referências para outros recusos da API requisitada.
      required:
        - self
      properties:
        self:
          type: string
          format: uri
          maxLength: 2000
          description: URI completo que gerou a resposta atual.
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        first:
          type: string
          format: uri
          maxLength: 2000
          description: URI da primeira página que originou essa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        prev:
          type: string
          format: uri
          maxLength: 2000
          description: "URI da página anterior dessa lista de resultados. Restrição - \tObrigatório quando não for a primeira página da resposta"
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        next:
          type: string
          format: uri
          maxLength: 2000
          description: URI da próxima página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        last:
          type: string
          format: uri
          maxLength: 2000
          description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
      additionalProperties: false
    Meta:
      type: object
      description: Meta informações referente a API requisitada.
      required:
        - totalRecords
        - totalPages
        - requestDateTime
      properties:
        totalRecords:
          type: integer
          format: int32
          description: Número total de registros no resultado
          example: 1
        totalPages:
          type: integer
          format: int32
          description: Número total de páginas no resultado
          example: 1
        requestDateTime:
          description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.'
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
      additionalProperties: false
    ResponseCreditCardAccountsList:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          description: Conjunto de informações de conta de pagamento pós-paga
          items:
            $ref: '#/components/schemas/CreditCardAccountsData'
          minItems: 1
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseCreditCardAccountsBills:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardAccountsBillsData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseCreditCardAccountsIdentification:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: object
          description: Conjunto de informações referentes à identificação da conta de pagamento pós-paga.
          required:
            - name
            - productType
            - creditCardNetwork
            - paymentMethod
          properties:
            name:
              type: string
              pattern: \w*\W*
              description: |
                Denominação/Identificação do nome da conta de pagamento pós-paga (cartão). Conforme CIRCULAR Nº 3.680,BCB, 2013: 'conta de pagamento pós-paga: destinada à execução de transações de pagamento que independem do aporte prévio de recursos'.
              maxLength: 50
              example: Cartão Universitário
            productType:
              $ref: '#/components/schemas/EnumCreditCardAccountsProductType'
            productAdditionalInfo:
              type: string
              pattern: \w*\W*
              description: Informações complementares se tipo de Cartão 'OUTROS'
              maxLength: 50
              example: OURO_INTERNACIONAL
            creditCardNetwork:
              $ref: '#/components/schemas/EnumCreditCardAccountNetwork'
            networkAdditionalInfo:
              type: string
              pattern: \w*\W*
              description: Texto livre para especificar categoria de bandeira marcada como 'OUTRAS'.
              maxLength: 50
              example: NA
            paymentMethod:
              type: array
              items:
                $ref: '#/components/schemas/CreditCardsAccountPaymentMethod'
          additionalProperties: false
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseCreditCardAccountsLimits:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardAccountsLimitsData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseCreditCardAccountsTransactions:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CreditCardAccountsTransaction'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseError:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          minItems: 1
          maxItems: 13
          items:
            type: object
            required:
              - code
              - title
              - detail
            properties:
              code:
                description: Código de erro específico do endpoint
                type: string
                pattern: \w*\W*
                maxLength: 255
              title:
                description: Título legível por humanos deste erro específico
                type: string
                pattern: \w*\W*
                maxLength: 255
              detail:
                description: Descrição legível por humanos deste erro específico
                type: string
                pattern: \w*\W*
                maxLength: 2048
            additionalProperties: false
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
      required: true
      schema:
        type: string
        pattern: \w*\W*
        maxLength: 2048
    billId:
      name: billId
      in: path
      description: Identificador da fatura.
      required: true
      schema:
        type: string
        pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
        maxLength: 100
    creditCardAccountId:
      name: creditCardAccountId
      in: path
      description: 'Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora'
      required: true
      schema:
        type: string
        pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
        maxLength: 100
    creditCardPayeeMCC:
      name: payeeMCC
      description: 'MCC é o Merchant Category Code, ou o código da categoria do estabelecimento comercial. Os MCCs são agrupados segundo suas similaridades'
      required: false
      in: query
      schema:
        type: number
        maxLength: 4
        example: 8299
    creditCardTransactionType:
      name: transactionType
      description: Traz os tipos de Transação
      required: false
      in: query
      schema:
        $ref: '#/components/schemas/EnumCreditCardTransactionType'
    fromDueDate:
      name: fromDueDate
      description: Data inicial de filtragem.
      required: false
      in: query
      schema:
        type: string
        maxLength: 20
        format: date-time
        example: '2021-05-21T08:30:00Z'
    fromTransactionDate:
      name: fromTransactionDate
      description: Data inicial de filtragem.
      required: false
      in: query
      schema:
        type: string
        maxLength: 20
        format: date-time
        example: '2021-05-21T08:30:00Z'
    page:
      name: page
      in: query
      description: Número da página que está sendo requisitada (o valor da primeira página é 1).
      schema:
        type: integer
        default: 1
        minimum: 1
        format: int32
    pageSize:
      name: page-size
      in: query
      description: Quantidade total de registros por páginas.
      schema:
        type: integer
        default: 25
        minimum: 1
        format: int32
        maximum: 10000
    toDueDate:
      name: toDueDate
      description: Data final de filtragem.
      required: false
      in: query
      schema:
        type: string
        maxLength: 20
        format: date-time
        example: '2021-05-21T08:30:00Z'
    toTransactionDate:
      name: toTransactionDate
      description: Data final de filtragem.
      required: false
      in: query
      schema:
        type: string
        maxLength: 20
        format: date-time
        example: '2021-05-21T08:30:00Z'
    xCustomerUserAgent:
      name: x-customer-user-agent
      in: header
      description: Indica o user-agent que o usuário utiliza.
      required: false
      schema:
        type: string
        pattern: \w*\W*
        minLength: 1
        maxLength: 100
    xFapiAuthDate:
      name: x-fapi-auth-date
      in: header
      description: 'Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a [RFC7231](https://tools.ietf.org/html/rfc7231).Exemplo: Sun, 10 Sep 2017 19:43:31 UTC'
      required: false
      schema:
        type: string
        pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$'
        minLength: 29
        maxLength: 29
    xFapiCustomerIpAddress:
      name: x-fapi-customer-ip-address
      in: header
      description: O endereço IP do usuário se estiver atualmente logado com o receptor.
      required: false
      schema:
        type: string
        pattern: \w*\W*
        minLength: 1
        maxLength: 100
    xFapiInteractionId:
      name: x-fapi-interaction-id
      in: header
      description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      required: false
      schema:
        type: string
        pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
        minLength: 1
        maxLength: 100
  securitySchemes:
    OpenId:
      type: openIdConnect
      openIdConnectUrl: 'https://authserver.example/.well-known/openid-configuration'
  responses:
    OKResponseCreditCardAccountsList:
      description: Conjunto de informações das Contas de pagamento pós paga
      headers:
        x-fapi-interaction-id:
          description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            maxLength: 100
            description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCreditCardAccountsList'
    OKResponseCreditCardAccountsIdentification:
      description: Dados de identificação da conta identificada por creditCardAccountId obtidos com sucesso.
      headers:
        x-fapi-interaction-id:
          description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            maxLength: 100
            description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCreditCardAccountsIdentification'
    OKResponseCreditCardAccountsBills:
      description: Dados referentes à lista de faturas da conta identificada por creditCardAccountId obtidos com sucesso.
      headers:
        x-fapi-interaction-id:
          description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            maxLength: 100
            description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCreditCardAccountsBills'
    OKResponseCreditCardAccountsLimits:
      description: Dados dos limites da conta identificada por creditCardAccountId obtidos com sucesso.
      headers:
        x-fapi-interaction-id:
          description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            maxLength: 100
            description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCreditCardAccountsLimits'
    OKResponseCreditCardAccountsTransactions:
      description: Dados das lista de transações da conta identificada obtidos com sucesso.
      headers:
        x-fapi-interaction-id:
          description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            maxLength: 100
            description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCreditCardAccountsTransactions'
    BadRequest:
      description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    Forbidden:
      description: O token tem escopo incorreto ou uma política de segurança foi violada
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    InternalServerError:
      description: Ocorreu um erro no gateway da API ou no microsserviço
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    MethodNotAllowed:
      description: O consumidor tentou acessar o recurso com um método não suportado
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    NotAcceptable:
      description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    NotFound:
      description: O recurso solicitado não existe ou não foi implementado
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    TooManyRequests:
      description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    Unauthorized:
      description: Cabeçalho de autenticação ausente/inválido ou token inválido
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
