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

# Criar cobrança Pix

> Permissão necessária: payments:write. Idempotency-Key ou externalId é obrigatório; a mesma chave com payload diferente retorna conflito. A rota de processamento é definida exclusivamente pela administração da conta.



## OpenAPI

````yaml https://api.nyxpag.com.br/v1/openapi.json post /transactions
openapi: 3.1.0
info:
  title: NyxPag API
  version: 1.1.0
  description: >-
    API REST para cobranças Pix, consulta de saldo, verificação de transações,
    MEDs, transferências e webhooks. Cada API Key permite 100 requisições por
    janela de 60 segundos, iniciada na primeira chamada e compartilhada entre
    todas as rotas autenticadas, inclusive MCP.
  contact:
    email: suporte@nyxpag.com.br
    url: https://docs.nyxpag.com.br/
servers:
  - url: https://api.nyxpag.com.br/v1
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Saldo
    description: Saldos disponível e reservado.
  - name: Pagamentos
    description: Criação de cobranças Pix.
  - name: Transações
    description: Consulta e acompanhamento de operações.
  - name: MED
    description: >-
      Consulta de contestações Pix e acompanhamento do valor retido até a
      decisão.
  - name: Transferências
    description: Saques e transferências Pix em reais.
  - name: Transparência
    description: Indicadores públicos consolidados da plataforma.
externalDocs:
  description: Guias, exemplos e referência da NyxPag API
  url: https://docs.nyxpag.com.br/
paths:
  /transactions:
    post:
      tags:
        - Pagamentos
      summary: Criar cobrança Pix
      description: >-
        Permissão necessária: payments:write. Idempotency-Key ou externalId é
        obrigatório; a mesma chave com payload diferente retorna conflito. A
        rota de processamento é definida exclusivamente pela administração da
        conta.
      parameters:
        - in: header
          name: Idempotency-Key
          schema:
            type: string
            maxLength: 100
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
                - payer
              properties:
                amount:
                  type: number
                  minimum: 1
                  maximum: 10000
                externalId:
                  type: string
                  maxLength: 100
                  description: Alternativa ao cabeçalho Idempotency-Key.
                description:
                  type: string
                  maxLength: 140
                coverFee:
                  type: boolean
                  default: false
                split:
                  type: array
                  maxItems: 10
                  description: >-
                    Recebedores da venda. A comissão é debitada do líquido desta
                    conta, ao lado da taxa da NyxPag, e cai no saldo do
                    recebedor quando o pagamento é aprovado. Informe amount (em
                    reais) ou percent (sobre o valor da venda) em cada item,
                    nunca os dois.
                  items:
                    type: object
                    required:
                      - recipient
                    properties:
                      recipient:
                        type: string
                        description: >-
                          E-mail, CPF/CNPJ ou identificador da conta NyxPag que
                          recebe.
                        example: parceiro@empresa.com
                      amount:
                        type: number
                        minimum: 0.01
                      percent:
                        type: number
                        minimum: 0.01
                        maximum: 100
                      description:
                        type: string
                        maxLength: 140
                webhookUrl:
                  type: string
                  format: uri
                payer:
                  type: object
                  required:
                    - name
                    - document
                  properties:
                    name:
                      type: string
                    document:
                      type: string
                      example: '52998224725'
                    email:
                      type: string
                      format: email
      responses:
        '200':
          description: Requisição idempotente existente
        '201':
          description: Cobrança criada
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: txn_mabc123_0123456789abcdef
                      externalId:
                        type: string
                        nullable: true
                        example: PEDIDO-1042
                      direction:
                        type: string
                        enum:
                          - in
                          - out
                      type:
                        type: string
                        enum:
                          - payment
                          - deposit
                          - withdrawal
                          - internal_transfer
                      method:
                        type: string
                        enum:
                          - pix
                          - internal
                      status:
                        type: string
                        enum:
                          - pending
                          - approved
                          - failed
                          - cancelled
                          - refunded
                      amount:
                        type: number
                        format: double
                        example: 149.9
                      fee:
                        type: number
                        format: double
                        example: 0.5
                      netAmount:
                        type: number
                        format: double
                        example: 149.2
                      description:
                        type: string
                        nullable: true
                      pix:
                        type: object
                        nullable: true
                        properties:
                          copyPaste:
                            type: string
                          qrCodeBase64:
                            type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                  requestId:
                    type: string
        '202':
          description: Cobrança em reconciliação automática
        '400':
          description: Dados inválidos
        '401':
          description: API Key ausente, inválida ou revogada
        '403':
          description: Permissão ou endereço IP não autorizado
        '409':
          description: Conflito de idempotência
        '422':
          description: Operação recusada
        '429':
          description: >-
            Limite de 100 requisições por minuto por API Key, compartilhado
            entre todas as rotas autenticadas. Proteções adicionais por IP
            também podem retornar 429.
          headers:
            Retry-After:
              description: Segundos até poder tentar novamente.
              schema:
                type: integer
                minimum: 1
            RateLimit-Limit:
              description: Limite da política aplicada; 100 para a cota por API Key.
              schema:
                type: integer
                example: 100
            RateLimit-Remaining:
              description: Requisições restantes na janela.
              schema:
                type: integer
                example: 0
            RateLimit-Reset:
              description: Segundos até o fim da janela.
              schema:
                type: integer
                minimum: 1
          content:
            application/json:
              example:
                success: false
                code: rate_limit_exceeded
                error:
                  code: rate_limit_exceeded
                  message: Muitas solicitações. Aguarde antes de tentar novamente.
                retryAfter: 60
                requestId: req_example
        '500':
          description: Erro interno
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Use Authorization: Bearer nyx_live_...'

````

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