Skip to main content
O PIX IN permite que você receba pagamentos de forma instantânea através da geração de QR Codes PIX. Ideal para cobranças, vendas online e qualquer situação onde você precisa receber um pagamento.

🚀 Como Funciona

O PIX IN funciona através da criação de QR Codes dinâmicos que seus clientes podem escanear para realizar o pagamento:

📱 QR Code Gerado

Você cria um QR Code com valor específico através da API

💳 Cliente Paga

Cliente escaneia o QR Code e confirma o pagamento no app do banco

⚡ Confirmação Instantânea

Você recebe confirmação em tempo real via webhook

💰 Valor Disponível

Valor fica disponível imediatamente em sua conta

🛠️ Implementação Rápida

1. Criar QR Code PIX

curl -X POST 'https://api.avanttifinance.com/v1/pix/in/qrcode' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <seu_token>' \
  -d '{
    "amountInCents": 5000,
    "postbackUrl": "https://nimble-swan-74.webhook.cool",
    "description": "Teste",
    "customer": {
      "name": "TESTE VENDA",
      "email": "[email protected]",
      "documentType": "cnpj",
      "document": "2222222222222",
      "phone": "(32) 99999-9999"
    },
    "items": [
      {
        "title": "Produto teste",
        "tangible": true,
        "quantity": 1,
        "amountInCents": 100,
        "shippingAddress": {
          "street": "Rua Teste",
          "number": "293",
          "neighborhood": "Bairro",
          "city": "São Paulo",
          "state": "SP",
          "zipCode": "123982193892183"
        }
      },
      {
        "title": "Produto teste 2",
        "tangible": true,
        "quantity": 1,
        "amountInCents": 300,
        "shippingAddress": {
          "street": "Rua Teste",
          "number": "293",
          "neighborhood": "Bairro",
          "city": "São Paulo",
          "state": "SP",
          "zipCode": "123982193892183"
        }
      }
    ],
    "seller": {
      "name": "Bruno Ribeiro do Vale",
      "documentType": "cnpj",
      "document": "07628652000114",
      "phone": "(32) 88888-9999"
    }
  }'

2. Resposta com QR Code

{
  "success": true,
  "message": "Transação criada com sucesso",
  "data": {
    "id": "clm8x9y0z1234567890abcdef",
    "pix": {
      "emv": "00020101021226830014br.gov.bcb.pix25225012.paymentcompany.com.br/qr/v2/cobv/9d36b84f58f7e04f12345678901234567890",
      "qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAJYCAYAAACvNd..."
    },
    "status": "pending",
    "fees": 100
  }
}

3. Exibir QR Code para Cliente

<!-- Mostrar QR Code -->
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAJYCAYAAACvNd..." alt="QR Code PIX">

<!-- Ou usar o código EMV -->
<div class="pix-code">
  <p>Copie e cole no seu banco:</p>
  <input type="text" value="00020101021226830014br.gov.bcb.pix..." readonly>
</div>

📊 Parâmetros Detalhados

Campos Obrigatórios

CampoTipoDescrição
amountInCentsnumberValor em centavos (ex: 10000 = R$ 100,00)
customerobjectDados do cliente pagador
customer.namestringNome completo do cliente
customer.emailstringEmail do cliente
customer.documentTypestringTipo do documento (cpf ou cnpj)
customer.documentstringNúmero do documento (apenas números)

Campos Opcionais

CampoTipoDescrição
descriptionstringDescrição da transação (máx. 140 caracteres)
postbackUrlstringURL específica para webhooks desta transação
itemsarrayLista de itens da compra
customer.phonestringTelefone do cliente
customer.billingAddressobjectEndereço de cobrança
sellerobjectinformações sobre vendedor

Exemplo Completo

{
    "amountInCents": 5000,
    "postbackUrl": "https://nimble-swan-74.webhook.cool",
    "description": "Teste",
    "customer": {
      "name": "TESTE VENDA",
      "email": "[email protected]",
      "documentType": "cnpj",
      "document": "2222222222222",
      "phone": "(32) 99999-9999"
    },
    "items": [
      {
        "title": "Produto teste",
        "tangible": true,
        "quantity": 1,
        "amountInCents": 100,
        "shippingAddress": {
          "street": "Rua Teste",
          "number": "293",
          "neighborhood": "Bairro",
          "city": "São Paulo",
          "state": "SP",
          "zipCode": "123982193892183"
        }
      },
      {
        "title": "Produto teste 2",
        "tangible": true,
        "quantity": 1,
        "amountInCents": 300,
        "shippingAddress": {
          "street": "Rua Teste",
          "number": "293",
          "neighborhood": "Bairro",
          "city": "São Paulo",
          "state": "SP",
          "zipCode": "123982193892183"
        }
      }
    ],
    "seller": {
      "name": "Bruno Ribeiro do Vale",
      "documentType": "cnpj",
      "document": "07628652000114",
      "phone": "(32) 88888-9999"
    }
  }

📡 Recebendo Confirmações

Via Webhook

Configure um webhook para receber confirmações automáticas:
{
  "id": "wh_64f8a2b1c3d4e5f6g7h8i9j0",
  "type": "transaction",
  "event": "transaction_paid",
  "scope": "user",
  "transaction": {
    "id": "clm8x9y0z1234567890abcdef",
    "amount": 29990,
    "status": "paid",
    "pix": {
      "endToEndId": "E12345678202412011030567890AB123C",
      "payerInfo": {
        "name": "Maria Silva Santos",
        "document": "12345678901"
      }
    }
  }
}

📋 Status das Transações

StatusDescriçãoPróximo Passo
pendingAguardando pagamentoMostrar QR Code para cliente
paidPago com sucessoLiberar produto/serviço
canceledCanceladoGerar novo QR Code se necessário
refundedEstornadoValor devolvido ao pagador

🛡️ Boas Práticas

Segurança

  • Sempre valide CPF/CNPJ antes de enviar
  • Sanitize dados de entrada
  • Verifique valores mínimos e máximos
  • Use HTTPS obrigatoriamente
  • Use IDs únicos para cada transação
  • Implemente verificação de duplicatas
  • Mantenha referências internas
  • Trate reenvios de webhook adequadamente
  • Monitore taxa de conversão
  • Acompanhe tempos de pagamento
  • Verifique abandono de carrinho
  • Alerte sobre falhas de webhook

Performance

  • Cache: Armazene QR Codes por período limitado
  • Timeout: Configure timeouts adequados para requisições
  • Retry: Implemente retry para chamadas falhadas
  • Batch: Agrupe operações quando possível

🎯 Próximos Passos