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

# Create Split Charge

> Cria uma cobrança PIX que, ao ser paga, é dividida automaticamente entre VOCÊ (dono da chave de API) e 1 a 9 beneficiários (contas PurinCash já cadastradas). Em `splits` você lista SOMENTE os outros beneficiários — você não se inclui: fica com o resto (100% menos a soma) e deve obrigatoriamente ter a maior fatia. A soma das percentages deve ser menor que 100.00. A taxa do gateway sai inteira da sua parte: cada beneficiário recebe a porcentagem cheia dele sobre o valor bruto; você recebe o restante menos a taxa (se a taxa passar da sua parte, você recebe 0). Emails dos beneficiários são mascarados em todas as respostas (LGPD). Se `callbackUrl` for informado, um POST assinado com HMAC-SHA256 (header X-Webhook-Signature) é enviado quando o pagamento for confirmado, com payload incluindo paymentId, status "paid" e splits mascarados.



## OpenAPI

````yaml /api-reference/openapi.yaml post /v1/split-charges
openapi: 3.1.0
info:
  title: PurinCash API
  version: 1.0.0
servers:
  - url: https://api.purincash.com
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Cartao
    description: Pagamentos no cartao de credito.
  - name: Cobrancas
    description: Cobrancas PIX avulsas com valor livre.
  - name: Entregas
    description: Conteudo entregue automaticamente apos o pagamento.
  - name: Disputas
    description: Contestacoes (MED) e envio de evidencias.
  - name: Pagamentos
    description: Pagamentos PIX e LTC vinculados ou nao a um produto.
  - name: Saques
    description: Saques em PIX, LTC e USDT.
  - name: Produtos
    description: Produtos de cobranca criados pela API.
  - name: Sandbox
    description: Simulacao de pagamentos e saldo de teste.
  - name: Splits
    description: Cobrancas divididas entre varias contas.
  - name: Loja
    description: Produtos da loja do Discord (somente leitura).
  - name: Assinaturas
    description: PIX recorrente.
  - name: Carteira
    description: Saldo, retencoes e valores a liberar.
paths:
  /v1/split-charges:
    post:
      tags:
        - Splits
      summary: Create Split Charge
      description: >-
        Cria uma cobrança PIX que, ao ser paga, é dividida automaticamente entre
        VOCÊ (dono da chave de API) e 1 a 9 beneficiários (contas PurinCash já
        cadastradas). Em `splits` você lista SOMENTE os outros beneficiários —
        você não se inclui: fica com o resto (100% menos a soma) e deve
        obrigatoriamente ter a maior fatia. A soma das percentages deve ser
        menor que 100.00. A taxa do gateway sai inteira da sua parte: cada
        beneficiário recebe a porcentagem cheia dele sobre o valor bruto; você
        recebe o restante menos a taxa (se a taxa passar da sua parte, você
        recebe 0). Emails dos beneficiários são mascarados em todas as respostas
        (LGPD). Se `callbackUrl` for informado, um POST assinado com HMAC-SHA256
        (header X-Webhook-Signature) é enviado quando o pagamento for
        confirmado, com payload incluindo paymentId, status "paid" e splits
        mascarados.
      operationId: createSplitCharge
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: amountCents (ou amount) é obrigatório, junto com splits.
              required:
                - splits
              properties:
                amountCents:
                  type: integer
                  minimum: 80
                  maximum: 500000
                  description: >-
                    Valor da cobrança em centavos — inteiro entre 80 (R$ 0,80) e
                    500000 (R$ 5.000,00, teto para cobranças com split).
                    Preferido; também são aceitos amount (decimal em reais) ou
                    valueCents (alias de amountCents).
                amount:
                  type: number
                  description: >-
                    Valor da cobrança em reais (decimal). Alternativa a
                    amountCents.
                description:
                  type: string
                  maxLength: 200
                  description: >-
                    Descrição da cobrança (máx. 200 caracteres). Padrão "Split
                    PIX".
                splits:
                  type: array
                  minItems: 1
                  maxItems: 9
                  description: >-
                    Lista somente dos OUTROS beneficiários (1 a 9). Cada
                    recipientEmail deve ser único, de uma conta PurinCash
                    existente e diferente da sua. A soma das percentages deve
                    ser menor que 100.00 e a sua fatia (100 menos a soma) deve
                    ser estritamente maior que a de cada beneficiário — caso
                    contrário a criação é rejeitada com 400.
                  items:
                    type: object
                    required:
                      - recipientEmail
                      - percentage
                    properties:
                      recipientEmail:
                        type: string
                        format: email
                        description: >-
                          E-mail de uma conta PurinCash existente (único na
                          lista e diferente da sua conta).
                      percentage:
                        type: number
                        minimum: 0.01
                        maximum: 99.99
                        description: >-
                          Percentual do beneficiário sobre o valor bruto (entre
                          0.01 e 99.99).
                customer:
                  type: object
                  description: Dados do cliente (opcional).
                  properties:
                    name:
                      type: string
                      maxLength: 100
                      description: Nome do cliente (máx. 100 caracteres).
                    email:
                      type: string
                      maxLength: 255
                      description: E-mail do cliente (máx. 255 caracteres).
                    externalId:
                      type: string
                      maxLength: 100
                      description: Identificador do cliente no seu sistema.
                callbackUrl:
                  type: string
                  format: uri
                  maxLength: 500
                  description: >-
                    URL HTTPS pública (máx. 500 caracteres) que recebe um POST
                    assinado com HMAC-SHA256 (header X-Webhook-Signature) quando
                    o pagamento é confirmado. Payload inclui paymentId, status
                    "paid" e splits com emails mascarados.
            example:
              amountCents: 10000
              description: Venda com parceiro
              splits:
                - recipientEmail: parceiro@example.com
                  percentage: 3
              customer:
                name: Cliente
                email: cliente@example.com
      responses:
        '201':
          description: >-
            Cobrança com split criada com sucesso. A sua fatia aparece na lista
            splits com isOwner true (no exemplo, o parceiro recebe 3% e você
            fica com 97%, menos a taxa).
          content:
            application/json:
              schema:
                type: object
                properties:
                  paymentId:
                    type: string
                    description: >-
                      Identificador único da cobrança com split (prefixo
                      psplit_).
                  status:
                    type: string
                    enum:
                      - pending
                      - paid
                      - expired
                      - refunded
                      - cancelled
                    description: Status da cobrança. Sempre "pending" na criação.
                  amountCents:
                    type: integer
                    description: Valor da cobrança em centavos.
                  currency:
                    type: string
                    description: Moeda da cobrança (sempre BRL).
                  environment:
                    type: string
                    enum:
                      - live
                      - sandbox
                    description: Ambiente da chave de API utilizada.
                  pix:
                    type: object
                    description: Dados do PIX gerado.
                    properties:
                      brCode:
                        type: string
                        description: Código PIX copia-e-cola (BR Code).
                      qrCodeImage:
                        type:
                          - string
                          - 'null'
                        description: URL da imagem do QR code, quando disponível.
                  splits:
                    type: array
                    description: >-
                      Divisão configurada, incluindo a sua fatia (isOwner true).
                      Emails mascarados (LGPD).
                    items:
                      type: object
                      properties:
                        recipientEmail:
                          type: string
                          description: E-mail do beneficiário, mascarado.
                        percentage:
                          type: number
                          description: Percentual do beneficiário sobre o valor bruto.
                        isOwner:
                          type: boolean
                          description: >-
                            true para a sua fatia (dono da chave de API), que
                            recebe o restante.
                  expiresAt:
                    type: string
                    format: date-time
                    description: Expiração da cobrança (30 minutos após a criação).
              example:
                paymentId: psplit_a1b2c3d4...
                status: pending
                amountCents: 10000
                currency: BRL
                environment: live
                pix:
                  brCode: 00020126360014BR.GOV.BCB.PIX...
                  qrCodeImage: null
                splits:
                  - recipientEmail: vo***@example.com
                    percentage: 97
                    isOwner: true
                  - recipientEmail: pa***@example.com
                    percentage: 3
                    isOwner: false
                expiresAt: '2026-05-28T12:30:00.000Z'
        '400':
          description: >-
            Validação rejeitada — ex. splits fora de 1 a 9 beneficiários,
            percentage fora de 0.01 a 99.99, soma das percentages maior ou igual
            a 100.00, sua fatia não estritamente maior que a de cada
            beneficiário, recipientEmail duplicado / inexistente / igual ao seu,
            amountCents fora de 80 a 500000 ou callbackUrl não HTTPS.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: >-
                  recipients sum to 100.00% — must be < 100.00% (you, the API
                  owner, keep the remainder)
        '401':
          description: Chave de API ausente, inválida ou revogada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Invalid or revoked API key
        '403':
          description: Loja não verificada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Falha ao criar a cobrança PIX no gateway de pagamento.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: >-
            Mensagem de erro legivel. Trate pelo codigo HTTP; o texto pode
            mudar.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Chave de API gerada no dashboard da PurinCash (ps_live_ ou ps_test_).

````