Malga Charges API

Para realizar uma cobrança deve criar um objeto `charge`. É possível recuperar detalhes de transações individuais ou listar todas as cobranças realizadas em um determinado `merchant`. Os `charges` são identificados a partir de um id 'único'. **Dados básicos de um objeto do tipo charge**

Operations 7

POST /v1/charges Realizar nova cobrança #
GET /v1/charges Listar cobranças #
GET /v1/charges/{id} Recuperar detalhes de cobrança #
POST /v1/charges/{id} Alterar o status de uma cobrança no ambiente de sandbox #
PATCH /v1/charges/{id}/antifraud Alterar o status do antifraude no ambiente de sandbox #
POST /v1/charges/{id}/capture Capturar cobrança pre-autorizada #
POST /v1/charges/{id}/void Estornar cobrança aprovada #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/plug-charges-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

plug-charges-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '0.5'
  title: Documentação Malga 3DS2 Malga Charges API
  description: "# Authentication\n\nOs serviços de API da Malga são protegidos através de chaves de acesso. Você pode gerenciar suas chaves de acesso através do seu dashboard.\n\nÉ importante armazenar suas chaves de maneira privada e segura uma vez que elas possuem privilégios de alteração na sua conta. Não compartilhe suas chaves, não deixe elas fixadas no seu código e nem armazene elas no seu servidor de controle de versão. Recomendamos utilizar variáveis de ambiente secretas para deixar a chave disponível para sua aplicação.\n\nA Autenticação para todos os chamadas da API é feita através de headers HTTP, sendo necessário informar seu identificador de cliente na Malga e a chave secreta de acesso.\n\n## X-Client-ID\n\nIdentificador única da sua conta na Malga. Deve ser enviado no header obrigatóriamente em todas as requisições feitas a API.\n\n| Security Scheme Type | API Key |\n|-----------------------|-----------|\n| Header parameter name | `X-Client-ID` |\n\n## X-Api-Key\n\nSua chave de acesso a API. Funciona em par com o client-id devendo ser enviado no header obrigatóriamente em todas as requisições feitas a API.\n\n| Security Scheme Type | API Key |\n|-----------------------|-----------|\n| Header parameter name | `X-Api-Key` |\n\n## Exemplo de requisicão autenticada\n\n```bash\n  curl --location --request GET 'https://api.malga.io/v1/' \\\n    --header 'X-Client-Id: <YOUR_CLIENT_ID>' \\\n    --header 'X-Api-Key: <YOUR_SECRET_KEY>'\n```\n"
servers:
- url: https://api.malga.io
  description: Production
security:
- X-Client-ID: []
  X-Api-Key: []
tags:
- name: Charges
  description: '

    Para realizar uma cobrança deve criar um objeto `charge`. É possível recuperar detalhes de transações individuais ou listar todas as cobranças realizadas em um determinado `merchant`. Os `charges` são identificados a partir de um id ''único''.


    **Dados básicos de um objeto do tipo charge**


    <SchemaDefinition schemaRef="#/components/schemas/Charge" exampleRef="#/components/examples/ChargeCard" />

    '
paths:
  /v1/charges:
    post:
      tags:
      - Charges
      summary: Realizar nova cobrança
      operationId: charge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeRequest'
            examples:
              ChargeCardExample:
                $ref: '#/components/examples/ChargeCardRequest'
              ChargePixExample:
                $ref: '#/components/examples/ChargePixRequest'
              ChargeBoletoExample:
                $ref: '#/components/examples/ChargeBoletoRequest'
              ChargeSplitExample:
                $ref: '#/components/examples/ChargeSplitRequest'
              ChargeSplitPixExample:
                $ref: '#/components/examples/ChargeSplitRequestPix'
              ChargeSplitBoletoExample:
                $ref: '#/components/examples/ChargeSplitRequestBoleto'
              ChargeVendorExample:
                $ref: '#/components/examples/ChargeVendorExample'
              Charge3DS2Example:
                $ref: '#/components/examples/Charge3DS2Request'
              Charge3DSMPIExterno:
                $ref: '#/components/examples/Charge3DSMPIExterno'
              Charge3DSMalgaExample:
                $ref: '#/components/examples/Charge3DSMalgaRequest'
              ChargeNupayExample:
                $ref: '#/components/examples/ChargeNupayRequest'
              ChargePicpayExample:
                $ref: '#/components/examples/ChargePicpayRequest'
              ChargeDripExample:
                $ref: '#/components/examples/ChargeDripRequest'
              ChargeVoucherExample:
                $ref: '#/components/examples/ChargeVoucherRequest'
              ChargeApplePayCardExample:
                $ref: '#/components/examples/ChargeApplePayRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
                ChargePix:
                  $ref: '#/components/examples/ChargePix'
                ChargeBoleto:
                  $ref: '#/components/examples/ChargeBoleto'
                ChargeSplit:
                  $ref: '#/components/examples/ChargeSplit'
                ChargeSplitPix:
                  $ref: '#/components/examples/ChargeSplitPix'
                ChargeSplitBoleto:
                  $ref: '#/components/examples/ChargeSplitBoleto'
                ChargeCard3DSecure2:
                  $ref: '#/components/examples/ChargeCard3DSecure2'
                ChargeCard3DSMalga:
                  $ref: '#/components/examples/ChargeCard3DSMalga'
                ChargeNupay:
                  $ref: '#/components/examples/ChargeNupay'
                ChargePicpay:
                  $ref: '#/components/examples/ChargePicpay'
                ChargeDrip:
                  $ref: '#/components/examples/ChargeDrip'
                ChargeVoucher:
                  $ref: '#/components/examples/ChargeVoucher'
                ChargeApplePayResponse:
                  $ref: '#/components/examples/ChargeApplePayResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    get:
      tags:
      - Charges
      summary: Listar cobranças
      operationId: getCharges
      parameters:
      - in: query
        name: page
        schema:
          type: number
        required: false
        description: Número da página ativa
      - in: query
        name: limit
        schema:
          type: number
        required: false
        description: Quantidade de registros por página 1-100
      - in: query
        name: sort
        schema:
          type: string
          enum:
          - ASC
          - DESC
        required: false
        description: Tipo de ordenação decrescente ou crescente
      - in: query
        name: merchantId
        schema:
          type: string
          format: uuid
        required: false
        description: Id do merchant processado na cobrança
      - in: query
        name: id
        schema:
          type: string
          format: uuid
        required: false
        description: Id da cobrança
      - in: query
        name: sessionId
        schema:
          type: string
          format: uuid
        required: false
        description: Id da sessão vinculada à cobrança
      - in: query
        name: originalAmount
        schema:
          type: number
        required: false
        description: Valor em centavos da cobrança
      - in: query
        name: status
        schema:
          type: string
          enum:
          - pending
          - pre_authorized
          - authorized
          - voided
          - refund_pending
          - canceled
          - charged_back
          - capture_pending
        required: false
        description: Status da cobrança
      - in: query
        name: paymentType
        schema:
          type: string
          enum:
          - credit
          - pix
          - boleto
        required: false
        description: Tipo de pagamento
      - in: query
        name: orderId
        schema:
          type: string
        required: false
        description: Id da cobrança gerado pelo cliente
      - in: query
        name: created
        schema:
          type: string
        required: false
        description: Registros criados em uma data específica
        example: '2022-03-12T12:43:53'
      - in: query
        name: created.gt
        schema:
          type: string
        required: false
        description: Registros com data maior que
        example: '2022-03-12T12:43:53'
      - in: query
        name: created.lt
        schema:
          type: string
        required: false
        description: Registros com data menor que
        example: '2022-03-12T12:43:53'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeList'
              examples:
                ChargeList:
                  $ref: '#/components/examples/ChargeList'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/charges/{id}:
    get:
      tags:
      - Charges
      summary: Recuperar detalhes de cobrança
      operationId: getChargesByid
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Id da cobrança que deseja recuperar
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Charges
      summary: Alterar o status de uma cobrança no ambiente de sandbox
      operationId: changeStatusTransaction
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Id da cobrança que deseja alterar no sandbox
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeStatusTransaction'
            example:
              status: charged_back
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/charges/{id}/antifraud:
    patch:
      tags:
      - Charges
      summary: Alterar o status do antifraude no ambiente de sandbox
      operationId: changeAntifraudStatusTransaction
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Id da cobrança que deseja alterar no sandbox
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeAntifraudStatusTransaction'
            example:
              status: approved
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/charges/{id}/capture:
    post:
      tags:
      - Charges
      summary: Capturar cobrança pre-autorizada
      operationId: captureCharge
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Id da cobrança que deseja capturar
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaptureRequest'
            example:
              amount: 150
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/charges/{id}/void:
    post:
      tags:
      - Charges
      summary: Estornar cobrança aprovada
      operationId: refundCharge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoidRequest'
            example:
              amount: 150
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: Id da cobrança que deseja estornar
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
              examples:
                ChargeCard:
                  $ref: '#/components/examples/ChargeCard'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ChargeSplitRules:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Identificador da regra de split
        createdAt:
          type: string
          description: Data de criação da regra de split
        sellerId:
          type: string
          format: uuid
          description: Identificador do recebedor já cadastrado na API de [sellers](/api-reference/sellers/criacao-de-um-novo-recebedor)
        percentage:
          type: number
          description: Porcentagem do valor da transação que será enviada ao recebedor
        amount:
          type: number
          description: Valor que será enviado ao recebedor
        processingFee:
          type: boolean
          description: Indica se o recebedor vinculado à regra será cobrado pelas taxas da transação
        chargeEntireFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa inteira da transação
        chargeRemainderFee:
          type: boolean
          description: Indica se o recebedor será cobrado pela taxa restante da transação
        fareFee:
          type: boolean
          description: Indica valor em centavos a ser cobrado por transação capturada. É descontado no momento da “montagem” da agenda financeira
        fareMdr:
          type: number
          description: Indica o percentual a ser descontado do valor de uma transação, definido por produto (crédito/débito/boleto), bandeira e faixa de parcelamento
    SplitRulesVoid:
      type: object
      properties:
        sellerId:
          type: string
          format: uuid
          description: Identificador do recebedor que participou da transação
        amount:
          type: number
          description: Valor de estorno do recebedor informado
    ErrorItem:
      properties:
        type:
          type: string
          enum:
          - api_error
          - bad_request
          - invalid_request_error
          - card_declined
        code:
          type: integer
          description: Código HTTP do erro (por exemplo, `422` em erros de regra de negócio).
        declinedCode:
          type: string
          description: Código de retorno da transação em caso de falha na autorização
        key:
          type: string
          description: 'Chave estável que identifica o erro de negócio (ex.: `bank_identifier_required`). Útil para tratar o erro programaticamente, independente da mensagem traduzida.'
        businessCode:
          type: string
          description: 'Chave estável de regra de negócio retornada em `422`. Permite tratar o erro programaticamente independente da mensagem traduzida. Exemplos em sessões: `pix_boleto_multiple_payments_not_allowed`, `pix_boleto_one_to_one_reactivation_blocked`, `platform_fee_exceeds_link_amount`, `session_disabled`, `multiple_payments_limit_reached`.

            '
        message:
          type: string
          description: Descrição breve do erro
        details:
          type: array
          description: Lista contendo objetos que detalham o erro de validação
    SourceTypeClickToPay:
      title: Click to Pay
      type: object
      description: Dados do Click to Pay
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `click_to_pay` para cobrança via Click to Pay
          enum:
          - wallet
        walletPayment:
          type: string
          description: Tipo de pagamento, usar `credit` para cobrança por cartão de crédito
          enum:
          - credit
        walletClickToPay:
          type: object
          description: Informações sobre o Click to Pay obtidas pelo SDK da Mastercard
          properties:
            dpaId:
              type: string
              description: Identificador do Click to Pay
            correlationId:
              type: string
              description: Identificador da correlação do Click to Pay
            flowId:
              type: string
              description: Identificador do fluxo do Click to Pay
            merchantTransactionId:
              type: string
              description: Identificador da transação do Click to Pay
      required:
      - sourceType
      - walletPayment
      - walletClickToPay
    3DSecure2BillingAddress:
      type: object
      properties:
        city:
          type: string
          description: Cidade
        country:
          type: string
          description: Padrão ISO 3166-1 alpha-2
        streetNumber:
          type: string
          description: Número da rua
        zipCode:
          type: string
          description: Codigo postal CEP
        state:
          type: string
          description: Estado
        street:
          type: string
          description: Rua
      required:
      - city
      - country
      - streetNumber
      - zipCode
      - state
      - street
    3DSecure2CardHolder:
      type: object
      properties:
        email:
          type: string
          description: Email
        mobilePhone:
          type: string
          description: Telefone celular
      required:
      - email
    PaymentMethodDrip:
      type: object
      title: Drip
      properties:
        paymentType:
          type: string
          enum:
          - drip
          description: Método da cobrança via Drip
        maxInstallments:
          type: number
          description: Quantidade de parcelas máxima a serem pagos com a Drip
        browser:
          description: Informações sobre o navegador do usuário
          allOf:
          - $ref: '#/components/schemas/DripBrowser'
        items:
          type: array
          description: Informações sobre itens que estão sendo pagos
          items:
            $ref: '#/components/schemas/DripItem'
        cancelRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de cancelamento do pagamento no ambiente de checkout da Drip
        successRedirectUrl:
          type: string
          description: Link de redirecionamento em caso de aprovação do pagamento no ambiente de checkout da Drip
        firstInstallmentsDate:
          type: string
          description: Data para realizar o pagamento da primeira parcela
        totalInstallments:
          type: number
          description: Número total de parcelas para o pagamento
        finePercentage:
          type: number
          description: Porcentagem da multa
        interestPercentage:
          type: number
          description: Porcentagem do juros
        cancellationFeePercentage:
          type: number
          description: Porcentagem para a taxa de cancelamento
        minutesToExpire:
          type: integer
          description: Tempo em minutos para expiração da transação após sua criação
      required:
      - paymentType
    AppInfoDevice:
      properties:
        sessionId:
          type: string
          description: ID da sessão
        name:
          type: string
          description: Nome do sistema operacional
        version:
          type: string
          description: Versão do sistema operacional
      required:
      - name
      - version
    PlatformFeeAppliedOutput:
      type: object
      description: Snapshot da platform fee aplicada em uma cobrança (retorno transacional).
      required:
      - ruleId
      - paymentMethod
      - amount
      - appliedAt
      properties:
        ruleId:
          type: string
          format: uuid
          description: Identificador da regra de platform fee aplicada
        percentage:
          type: number
          format: float
          nullable: true
          description: Percentual da regra no momento da aplicação (quando houver)
        fixedAmount:
          type: integer
          nullable: true
          description: Valor fixo da regra em centavos no momento da aplicação (quando houver)
        paymentMethod:
          type: string
          description: Método de pagamento associado à regra aplicada (`credit`, `pix`, `boleto`, `default`, etc.)
        installment:
          type: integer
          minimum: 1
          maximum: 24
          nullable: true
          description: Parcelas informadas na regra aplicável; geralmente preenchido apenas para `credit`
        amount:
          type: integer
          description: Valor calculado da platform fee para a transação, em centavos
          example: 500
        appliedAt:
          type: string
          format: date-time
          description: Momento ISO 8601 em que a taxa foi aplicada no transacional
    PaymentMethodVoucher:
      type: object
      title: Voucher
      properties:
        paymentType:
          type: string
          enum:
          - voucher
          description: Método da cobrança via Voucher
        items:
          type: array
          description: Informações sobre itens do pedido
          items:
            $ref: '#/components/schemas/VoucherItem'
        customer:
          type: object
          description: Informações sobre o cliente
          allOf:
          - $ref: '#/components/schemas/VoucherCustomer'
      required:
      - paymentType
    PaymentMethodApplePay:
      title: Apple Pay
      type: object
      properties:
        paymentType:
          type: string
          enum:
          - apple_pay
          description: Método da cobrança via Apple Pay
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo Apple Pay crédito
      required:
      - paymentType
    3DSecure2browser:
      type: object
      properties:
        acceptBrowserValue:
          type: string
          description: O valor do cabeçalho Accept para o navegador
        acceptContent:
          type: string
          description: O tipo de conteúdo que o navegador aceita
        acceptHeader:
          type: string
          description: O Accept do cabeçalho de requisição HTTP
        colorDepth:
          type: number
          description: A profundidade de cores da tela
        javaEnabled:
          type: boolean
          description: Se Java está habilitado
        javaScriptEnabled:
          type: boolean
          description: Se javaScript está habilitado
        language:
          type: string
          description: A linguagem utilizada pelo sistema do usuário
        screenHeight:
          type: number
          description: Altura da tela
        screenWidth:
          type: number
          description: Largura da tela
        timeZoneOffset:
          type: string
          description: Diferença em minutos do deslocamento de fuso horário entre o UTC e a localidade atual
        userAgent:
          type: string
          description: O User-Agent do cabeçalho de requisição  HTTP
        ip:
          type: string
          description: Endereço de ip do usuário
      required:
      - acceptBrowserValue
      - acceptContent
      - acceptHeader
      - colorDepth
      - javaEnabled
      - language
      - screenHeight
      - screenWidth
      - timeZoneOffset
      - userAgent
      - ip
    PaymentMethodApplePayObject:
      title: ApplePay
      type: object
      properties:
        paymentType:
          type: string
          enum:
          - apple_pay
          description: Método da cobrança via Apple Pay
        installments:
          type: number
          description: Quantidade de parcelas para cobrança do tipo apple pay crédito
      required:
      - paymentType
    Charge:
      properties:
        id:
          type: string
          description: Identificador da transação
        clientId:
          type: string
          format: uuid
          description: Identificador do cliente na Malga
        merchantId:
          type: string
          format: uuid
          description: Identificador do merchant id utilizado na transação
        customerId:
          type: string
          format: uuid
          description: Identificador do customer id
        description:
          type: string
          description: Descrição da cobrança para consulta futura
        amount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        originalAmount:
          type: number
          description: Valor da transação em centavos, exemplo 100 para cobrar R$ 1,00
        currency:
          type: string
          description: Identificador da moeda para processamento da cobrança, formato ISO 4217.
          default: BRL
        statementDescriptor:
          type: string
          description: Descrição a ser exibida na fatura do comprador
        capture:
          type: boolean
          description: Determina se a transação deve ser capturada automaticamente
        isDispute:
          type: boolean
          description: Determina se a transação está em disputa
        status:
          type: string
          description: Status da transação na Malga
          enum:
          - pending
          - pre_authorized
          - authorized
          - failed
          - canceled
          - voided
          - charged_back
          - refund_pending
          - capture_pending
        orderId:
          type: string
          description: Identificador único da cobrança do lado do cliente para conciliação futura
        responsibleProviderType:
          type: string
          description: Nome do provedor de pagamento responsável pela transação
        paymentMethod:
          oneOf:
          - $ref: '#/components/schemas/PaymentMethodCardObject'
          - $ref: '#/components/schemas/PaymentMethodPixObject'
          - $ref: '#/components/schemas/PaymentMethodBoletoObject'
          - $ref: '#/components/schemas/PaymentMethodNuPayObject'
          - $ref: '#/components/schemas/PaymentMethodDripObject'
          - $ref: '#/components/schemas/PaymentMethodVoucherObject'
          - $ref: '#/components/schemas/PaymentMethodApplePayObject'
        paymentSource:
          oneOf:
          - $ref: '#/components/schemas/SourceTypeCardObject'
          - $ref: '#/components/schemas/SourceTypeTokenObject'
          - $ref: '#/components/schemas/SourceTypeCustomerObject'
          - $ref: '#/components/schemas/SourceTypeWalletObject'
        createdAt:
          type: string
          description: Data de criação do cartão
        updatedAt:
          type: string
          description: Data de atualização do cartão
        fraudAnalysisMetadata:
          description: Parâmetros adicionais para analise de fraude
          allOf:
          - $ref: '#/components/schemas/FraudAnalysisMetadata'
        paymentFlow:
          type: object
          description: Campos adicionais para uso em condicionais dos fluxos inteligentes
          properties:
            metadata:
              type: object
              description: Campos adicionais da transação enviados na criação da mesma
          required:
          - metadata
        transactionRequests:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRequest'
        threeDSecure2:
          type: object
          allOf:
          - $ref: '#/components/schemas/3DSecure2Response'
        appInfo:
          type: object
          description: Informações sobre a rastreabilidade da cobrança
          allOf:
          - $ref: '#/components/schemas/AppInfoObject'
        splitRules:
          type: array
          description: Parâmetros adicionais para transacionar com `Split`
          items:
            $ref: '#/components/schemas/ChargeSplitRules'
        platformFee:
          allOf:
          - $ref: '#/components/schemas/PlatformFeeAppliedOutput'
          description: 'Detalhes da taxa de plataforma aplicada na cobrança quando há `splitRules` e o merchant tem platform fee habilitado. Ausente quando não há aplicação de platform fee.

            '
    3DSecure2CardHolderResponse:
      type: object
      properties:
        email:
          type: string
          description: Email
        mobilePhone:
          type: string
          description: Telefone celular
    VoucherItem:
      properties:
        id:
          type: string
          description: Id do item a ser pago com Voucher
        title:
          type: string
          description: Descrição do item a ser pago com Voucher
        unitPrice:
          type: string
          description: Valor unitário do item a ser pago com Voucher
        quantity:
          type: array
          description: Quantidade de itens a serem pagos com Voucher
    SourceTypeCard:
      title: Cartão tokenizado
      type: object
      description: Dados para cobrança por cartão de crédito salve
      properties:
        sourceType:
          type: string
          description: Tipo da origem da cobrança, usar `card` para cobrança em cartão tokenizado
          enum:
          - card
        cardId:
          type: string
          format: uuid
          description: Identificador do cartão quando source tipo card
        cardCvv:
          type: string
          description: Código de verificação cobrança sem tokenização, deve ser enviado sempre que o comprador estiver presente no momento da compra (opcional)
      required:
      - sourceType
      - cardId
    AppInfoPlatform:
      properties:
        integrator:
          type: string
          description: Nome do parceiro que implementou a integração
        name:
          type: string
          description:

# --- truncated at 32 KB (152 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plug/refs/heads/main/openapi/plug-charges-api-openapi.yml