Pular para o conteúdo
xFlow Payments

Blog

Limite noturno do Pix e cobranças

Pelas regras do Banco Central, o limite noturno de R$ 1.000, das 20h às 6h, vale quando o pagador é pessoa física e o recebedor também. Se quem recebe é pessoa jurídica, o banco do pagador aplica um limite por dia, definido por ele. Uma cobrança alta à noite pode esbarrar nesses limites e ficar sem pagamento; a integração pode avisar o pagador, dividir o valor em mais de um Pix e conferir o status.

Atualizado em · Equipe xFlow Payments · 6 min de leitura

O limite noturno do Pix é o teto que o banco de quem paga aplica entre 20h e 6h. Pela norma do Banco Central, ele é de R$ 1.000 quando o pagador é pessoa física e o recebedor também, salvo se o cliente pediu outro valor. Quando o recebedor é uma empresa, a regra é outra: o banco do pagador define um limite por dia. Para quem cobra por API, o efeito é o mesmo nos dois casos: uma cobrança alta, gerada à noite, pode ficar pending até expirar porque o banco do cliente não deixou o Pix sair. Abaixo, o que a norma diz e o que a sua integração pode fazer.

O que o Banco Central define

As regras estão na Instrução Normativa BCB nº 512, de 30/8/2024, em vigor desde a publicação, em 3/9/2024, com a redação dada pela Instrução Normativa BCB nº 669, em vigor desde 30/9/2025. Ela vale para os limites que os bancos aplicam a clientes pessoa física. O Banco Central resume as mesmas regras na pergunta Limites de valor para as transações Pix, consultada em 25/10/2026.

Situação O que a norma diz
Pagador pessoa física, recebedor pessoa física, das 20h às 6h Limite de R$ 1.000, salvo pedido expresso do cliente
Pagador pessoa física, recebedor pessoa física, das 6h às 20h Limite definido pelo banco, com base no perfil de risco e de comportamento
Pagador pessoa física, recebedor pessoa jurídica Limite por dia, definido pelo banco
Início da noite O banco pode oferecer a opção de começar às 22h; a mudança vale entre 24 e 48 horas depois
Pedido de aumento O banco pode aceitar ou não; se aceitar, vale entre 24 e 48 horas depois
Pedido de redução Vale na hora, inclusive para zero
Celular sem localização O banco pode aplicar limites menores, inclusive zero

Três detalhes da norma mudam a conta de quem cobra. Os limites são por conta e por período, não por transação. Os limites para recebedores pessoa física e pessoa jurídica são independentes entre si. E o horário pode ser o do endereço do cliente ou o de Brasília, a critério de cada banco. Para pagadores pessoa jurídica, a norma não fixa esses valores: cada banco define o limite pelos critérios de risco do Regulamento do Pix, art. 37.

Por que uma cobrança alta à noite pode não ser paga

  • O recebedor é pessoa física. Se a conta que recebe o Pix é de CPF, o teto da noite é R$ 1.000 para o pagador pessoa física que não pediu outro valor.
  • O limite diário para empresas acabou ou é baixo. O banco define esse valor pelo perfil do cliente, e outros pagamentos do dia consomem o mesmo limite.
  • O cliente reduziu o próprio limite, ou está num celular cuja localização o banco não identifica.
  • O aumento não sai na hora. Mesmo que o cliente peça mais limite, a mudança leva de 24 a 48 horas, se o banco aceitar.

Para a sua integração, essa recusa é invisível. O banco do pagador barra o Pix antes de enviá-lo, então nenhum evento chega à xFlow. A cobrança continua pending até ser paga ou passar a expired. O roteamento por regras da xFlow pode mandar as cobranças da noite para outra adquirente, mas não muda o limite do banco do cliente.

O que a sua integração pode fazer

Avisar o pagador antes do QR Code

Um aviso na tela evita o cliente que tenta, falha e desiste sem falar com ninguém. Mostre o aviso quando a cobrança for alta e o horário estiver entre 20h e 6h:

js
function horaEmBrasilia(agora = new Date()) {
  return Number(new Intl.DateTimeFormat("pt-BR", {
    timeZone: "America/Sao_Paulo", hour: "numeric", hourCycle: "h23",
  }).format(agora));
}

function deveAvisar(valorCentavos, patamarCentavos, agora = new Date()) {
  const h = horaEmBrasilia(agora);
  return (h >= 20 || h < 6) && valorCentavos >= patamarCentavos;
}

// deveAvisar(250000, 100000) às 22h em Brasília → true

Um texto possível: "À noite, o seu banco pode limitar o valor do Pix. Se o pagamento não passar, pague de outra conta, divida em partes ou pague a partir das 6h." O patamar é escolha sua. Se quem recebe é pessoa física, R$ 1.000 é a referência da norma. Se é empresa, não há número fixo: use o seu histórico. Liste as cobranças expiradas com GET /api/v1/charges?status=expired&from=...&to=... e compare o valor (amountCents) e a hora de criação (createdAt) com as pagas. Se as cobranças acima de certo valor expiram mais à noite, esse é o seu patamar.

Dividir o valor em mais de um Pix

O Regulamento do Pix proíbe limite de quantidade de transações (art. 37-A), mas o limite de valor é por período em cada conta. Por isso, dividir só ajuda quando as partes são pagas de contas diferentes ou em dias diferentes. Para o cliente que paga parte hoje e parte amanhã, ou parte de cada banco, crie uma cobrança por parte:

js
const AUTH = "Basic " + Buffer.from(
  `${process.env.XFLOW_PUBLIC_KEY}:${process.env.XFLOW_SECRET_KEY}`,
).toString("base64");

async function criarPartes(pedido, partesCentavos) {
  const total = partesCentavos.length;
  const cobrancas = [];
  for (const [i, valor] of partesCentavos.entries()) {
    const res = await fetch("https://app.xflowpayments.com/api/v1/charges", {
      method: "POST",
      headers: {
        Authorization: AUTH,
        "Content-Type": "application/json",
        "Idempotency-Key": `${pedido.id}-parte-${i + 1}-de-${total}`,
      },
      body: JSON.stringify({
        amountCents: valor,
        customer: pedido.cliente,
        description: `Pedido #${pedido.id} (parte ${i + 1} de ${total})`,
        external_reference: pedido.id,
      }),
    });
    cobrancas.push(await res.json());
  }
  return cobrancas;
}

Todas as partes levam o mesmo external_reference, que não precisa ser único. Para saber se o pedido foi quitado, some as partes pagas:

js
async function pedidoQuitado(pedidoId, totalCentavos) {
  const url = new URL("https://app.xflowpayments.com/api/v1/charges");
  url.searchParams.set("external_reference", pedidoId);
  url.searchParams.set("status", "paid");
  const { data } = await (await fetch(url, { headers: { Authorization: AUTH } })).json();
  return data.reduce((soma, c) => soma + c.amountCents, 0) >= totalCentavos;
}

Chame essa função no handler do transaction.paid e libere o pedido só quando ela der true. Cada parte respeita o valor mínimo e o máximo por cobrança da conta: fora da faixa, a API responde 400 validation. Se o pedido for cancelado com partes já pagas, devolva cada uma com o estorno Pix por API, que é total por cobrança.

Dar tempo ao pagador

A documentação da xFlow não traz parâmetro para definir a validade da cobrança nem informa um prazo padrão. Então a integração não estica o prazo do QR Code. O que ela pode fazer é manter o pedido aberto por mais tempo que a cobrança: quando o cliente voltar, de manhã ou depois que o banco aumentar o limite, consulte a cobrança e, se estiver expired, gere outra com uma Idempotency-Key nova e o mesmo external_reference. O passo a passo está em cobrança Pix expirada.

Conferir o status, não adivinhar

Cobrança pending à noite não é falha. Libere o pedido pelo webhook transaction.paid e use GET /api/v1/charges/{id} como reserva, como mostra o guia de como saber se o Pix foi pago pela API. Não existe webhook de expiração: uma varredura das cobranças pending antigas mostra quem ficou para trás e merece um contato.

O que evitar

  • Prometer que o limite sobe hoje. A norma dá ao banco de 24 a 48 horas para responder, e o banco pode recusar.
  • Gerar cobranças em sequência na mesma tela. Vários Pix pagos da mesma conta, na mesma noite, somam no mesmo limite.
  • Tratar o pending noturno como recusa. O cliente pode pagar de outra conta minutos depois.

Conteúdo informativo, atualizado em 25/10/2026. Não substitui orientação jurídica.

Perguntas frequentes

O limite noturno de R$ 1.000 vale para cobranças de empresa?

Pela Instrução Normativa BCB nº 512, o limite noturno de R$ 1.000 vale quando o recebedor é pessoa física. Quando o recebedor é pessoa jurídica, o banco do pagador pessoa física aplica um limite por dia, definido com base no perfil de risco do cliente.

A API avisa quando o banco do pagador barra o Pix pelo limite?

Não. O banco do pagador recusa antes de enviar o Pix, então nada chega a quem cobra. Na API, a cobrança continua pending até ser paga ou expirar.

Dividir a cobrança em vários Pix resolve o limite?

Só em parte. Os limites são por período ou por dia em cada conta, então vários Pix da mesma conta na mesma noite somam no mesmo limite. A divisão ajuda quando as partes são pagas em dias diferentes ou de contas diferentes.

Em quanto tempo o pagador consegue aumentar o limite?

O banco pode aceitar ou não o pedido. Se aceitar, a resposta e a mudança acontecem entre 24 e 48 horas depois do pedido, segundo a norma do Banco Central. Pedidos de redução valem na hora.

Continue lendo

BlogCobrança Pix expiradaNa API da xFlow, cobrança Pix expirada é a que passou ao status expired: expirou sem pagamento. Não há webhook de expiração, então você detecta pela consulta ou pela listagem com status=expired e, se o cliente ainda quiser pagar, cria uma cobrança nova para o mesmo pedido, com outra Idempotency-Key.BlogComo saber se o Pix foi pago pela APIPara saber se um Pix foi pago pela API da xFlow, assine o webhook transaction.paid e, como reserva, consulte GET /api/v1/charges/{id} até o status sair de pending. Só libere o pedido com status paid, assinatura válida, livemode: true e valor igual ao do pedido.BlogQR Code Pix dinâmico por API: estático x dinâmicoPara gerar um QR Code Pix por cobrança via API na xFlow, chame POST /api/v1/charges: cada cobrança volta com um QR Code próprio em PNG (pix.qrCodeBase64), o copia e cola (pix.copyPaste), o valor do pedido e um status que muda até o pagamento.BlogEstorno Pix por APINa API da xFlow, o estorno Pix é um POST /api/v1/charges/{id}/refund que devolve ao pagador o valor total de uma cobrança paga, uma vez por cobrança e até 90 dias após o pagamento. A devolução é assíncrona: a resposta 202 diz que o PSP aceitou o pedido, e a conclusão chega pelo webhook transaction.refunded.SoluçãoRoteamento de pagamentosRoteamento de pagamentos é a regra que escolhe qual adquirente processa cada cobrança. Na xFlow, você define essa escolha por valor, horário e dia da semana, e cada regra tem uma cadeia de adquirentes para quando a primeira não responde.