> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pagmaster.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar cobrança no cartão

> Exige charges. R$5 a R$2.000, à vista; taxa padrão 424 centavos por aprovação. Retorna link hospedado com prazo de 30 minutos. Use o mesmo requestKey em repetições: checkout incerto não é recriado. Saldo fica retido até liberação confirmada da liquidante e crédito único no ledger do negócio.



## OpenAPI

````yaml /openapi.yaml post /card/charges
openapi: 3.1.0
info:
  title: Master API
  version: 1.1.0
  description: >-
    API pública da Master para cobranças Pix, cartão e transferências Pix
    automáticas. Valores em centavos inteiros.
servers:
  - url: https://api.pagmaster.site/api/v1/public
    description: Produção, após configurar DNS e HTTPS
  - url: http://127.0.0.1:4000/api/v1/public
    description: Desenvolvimento local
security:
  - bearerAuth: []
tags:
  - name: Conta
    description: Saldo e limites da conta
  - name: Pagamentos
    description: Consulta de operações
  - name: Cobranças Pix
    description: Criação de cobranças
  - name: Transferências Pix
    description: Envios automáticos autorizados por API key
  - name: Operações de negócio
    description: Até 10 negócios com saldos e históricos independentes
  - name: Cartão de crédito
    description: Checkout hospedado e consulta de aprovação e liquidação
paths:
  /card/charges:
    parameters:
      - $ref: '#/components/parameters/BusinessOperationHeader'
    post:
      tags:
        - Cartão de crédito
      summary: Criar cobrança no cartão
      description: >-
        Exige charges. R$5 a R$2.000, à vista; taxa padrão 424 centavos por
        aprovação. Retorna link hospedado com prazo de 30 minutos. Use o mesmo
        requestKey em repetições: checkout incerto não é recriado. Saldo fica
        retido até liberação confirmada da liquidante e crédito único no ledger
        do negócio.
      operationId: createCardCharge
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCardCharge'
            example:
              amountCents: 4990
              name: Pedido 123
              description: Camiseta M
              payerName: Ana Souza
              requestKey: 6d2a1728-fb1c-4fc1-bf7c-b4fc89fd6e73
      responses:
        '201':
          description: Checkout criado ou operação com resultado ainda em verificação
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentOperation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimit'
        '503':
          $ref: '#/components/responses/Unavailable'
components:
  parameters:
    BusinessOperationHeader:
      name: X-Master-Operation
      in: header
      required: false
      description: >-
        UUID do negócio selecionado. Sem este header, utiliza a operação
        principal.
      schema:
        type: string
        format: uuid
  schemas:
    CreateCardCharge:
      type: object
      additionalProperties: false
      required:
        - amountCents
        - payerName
        - description
        - requestKey
        - name
      properties:
        amountCents:
          type: integer
          minimum: 500
          maximum: 200000
          example: 4990
        payerName:
          type: string
          minLength: 2
          maxLength: 100
        description:
          type: string
          maxLength: 200
          description: Descrição exibida no checkout
          minLength: 1
        requestKey:
          type: string
          format: uuid
          description: UUID estável para repetir esta mesma cobrança sem duplicar
        name:
          type: string
          minLength: 2
          maxLength: 80
    PaymentOperation:
      type: object
      required:
        - id
        - kind
        - amountCents
        - status
        - createdAt
        - operationId
        - feeCents
        - updatedAt
        - settledAt
        - paymentMethod
        - expiresAt
      properties:
        id:
          type: string
          format: uuid
        kind:
          type: string
          enum:
            - deposit
            - transfer
        amountCents:
          type: integer
        status:
          type: string
          enum:
            - draft
            - unknown
            - pending
            - paid
            - completed
            - failed
            - expired
            - cancelled
        createdAt:
          type: string
          format: date-time
        copyPaste:
          type: string
          description: Código Pix copia e cola quando fornecido pelo provedor
        qrCodeBase64:
          type: string
          description: Data URL PNG com QR Code quando fornecida pelo provedor
        endToEnd:
          type: string
        notice:
          type: string
        operationId:
          type: string
          format: uuid
          description: Identificador do negócio
        feeCents:
          type:
            - integer
            - 'null'
          minimum: 0
          description: Tarifa da conta registrada na criação
        updatedAt:
          type: string
          format: date-time
        settledAt:
          type:
            - string
            - 'null'
          format: date-time
        providerFeeCents:
          type: integer
          minimum: 0
          description: Tarifa confirmada pelo processamento quando informada
        netAmountCents:
          type: integer
          minimum: 0
          description: Valor líquido confirmado pelo processamento quando informado
        debitAmountCents:
          type: integer
          minimum: 1000
          description: Débito bruto do novo saque, com a tarifa da conta incluída
        expectedNetAmountCents:
          type: integer
          minimum: 1
          description: >-
            Líquido previsto do saque ou cartão: valor bruto menos tarifa da
            conta
        paymentMethod:
          type:
            - string
            - 'null'
          enum:
            - pix
            - card
            - null
        expiresAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Prazo do provedor, null quando não informado
        paidAt:
          type: string
          format: date-time
        checkoutUrl:
          type: string
          format: uri
          description: Checkout hospedado, somente cartão
        releaseAt:
          type: string
          format: date-time
          description: Liberação informada pela liquidante
        cardSettlementStatus:
          type: string
          enum:
            - held
            - available
        card:
          $ref: '#/components/schemas/CardDetails'
    CardDetails:
      type:
        - object
        - 'null'
      additionalProperties: false
      properties:
        status:
          type: string
          enum:
            - processing
            - paid
            - refused
        brand:
          type: string
          enum:
            - visa
            - mastercard
            - elo
            - amex
            - hipercard
            - other
        last4:
          type:
            - string
            - 'null'
          pattern: ^\d{4}$
        installments:
          type: integer
          const: 1
        refusedReason:
          type:
            - string
            - 'null'
          maxLength: 300
        attemptsLeft:
          type:
            - integer
            - 'null'
          minimum: 0
          maximum: 3
    Error:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
  responses:
    BadRequest:
      description: Dados inválidos ou conflito de idempotência
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: API key ausente, inválida ou revogada
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Permissão insuficiente
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Operação não encontrada nesta conta
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimit:
      description: Limite temporário de requisições
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unavailable:
      description: >-
        Processamento indisponível; preserve a referência e consulte a mesma
        operação antes de repetir.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key criada em Integrações → Keys. Exemplo `mk_live_...`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.