Skip to main content
POST
Criar cobrança
Cria uma cobrança Pix (type: "pix") ou de cartão (type: "card"). Pix dinâmico exige customer; cartão exige card (UUID de um cartão tokenizado) e customer. Permissão: charge.write. Apenas chave secreta (sk_…).
Os exemplos usam o sandbox (https://api.upag.dev/v1). Em produção use https://api.upag.io/v1 com sk_live_….

Endpoint

Pix

Cartão

A cobrança de cartão é processada na hora: a resposta já traz o resultado (paid, in_review ou failed). O card precisa pertencer à conta; veja o fluxo completo em Cartão com 3DS.

Parâmetros

Comuns

string
required
pix ou card.
integer
required
Valor em centavos, maior que zero. Em cartão parcelado, é o preço cheio: os juros de parcelamento não entram aqui.
string
1 a 140 caracteres. Uso interno (conciliação); não vai no QR code nem o pagador vê.
object
Até 50 chaves (1 a 40 caracteres), valores string de até 500 caracteres. Devolvido como enviado em respostas e webhooks. Em cartão, session_id é lido pela plataforma como a sessão de dispositivo do pagador (antifraude), veja Antifraude.
array
Até 100 itens informativos (não alteram valor nem taxas):
  • name (obrigatório, 1 a 255 caracteres)
  • quantity (obrigatório, inteiro de 1 a 9999)
  • unitAmount (obrigatório, inteiro ≥ 0, em centavos)
  • kind: physical, digital, shipping ou other (padrão)
  • sku (até 64), externalId (até 255), url (HTTP/HTTPS, até 255)
quantity × unitAmount deve caber em inteiro de 32 bits (2.147.483.647). Em cartão, os itens também seguem junto com o pagamento.
array
Repasses para outras contas: { "account": "uuid", "amount": centavos } (amount inteiro maior que zero). A soma dos splits precisa ser menor que o valor líquido da cobrança (amount menos a taxa da plataforma). A conta recebedora precisa estar ativa e não pode ser a sua.

Pix (type: "pix")

object
Configuração do QR code. Padrão: dinâmico, vencendo em 10 minutos.
  • method: dynamic (padrão) ou static.
  • dueDate (só dynamic): vencimento, data ISO 8601. Padrão: 10 minutos a partir de agora.
string | object
Obrigatório no Pix dinâmico; opcional no estático. UUID de um cliente existente ou um objeto cliente inline (mesmos campos de Criar cliente). No objeto inline, o document.number identifica o cliente: se já existir na conta, é reutilizado e os demais valores enviados o atualizam; campos omitidos ou null não apagam nada.

Cartão (type: "card")

string
required
UUID de um cartão tokenizado da conta.
string | object
required
UUID do cliente ou objeto cliente inline (aceita também ipAddress, com o mesmo sentido do campo da cobrança; se ambos forem enviados, vale o do cliente, e ele nunca é gravado no cadastro). O cliente precisa ter email e phone.
integer
1 a 12. Padrão 1. Acima de 1 exige parcelamento habilitado na conta, respeitando o máximo configurado. Com sessão 3DS, deve ser igual ao da sessão.
string
UUID de uma sessão 3D Secure concluída para este cartão, valor e parcelas. A sessão é consumida pela cobrança, qualquer que seja o resultado, e o cartão é cobrado no finalAmount da sessão. Sem ela, o cartão é cobrado sem 3DS.
string
IPv4 ou IPv6 público do pagador. Não é aceito em Pix.
object
Localização do pagador resolvida a partir do IP: city (até 50), state (2 letras), country (2 letras), zip (até 9). Usada só para completar o endereço de cobrança exigido pela adquirente; nunca é gravada no cliente.
string
Texto na fatura do pagador, 1 a 13 caracteres. Padrão: o descritivo da conta.

Antifraude

Em cobranças de cartão, envie meta.session_id com o identificador da sessão de dispositivo do pagador e ipAddress com o IP dele. No browser, o upag-js gera o identificador e carrega o coletor de dispositivo:
upag-js
Gere um session_id novo a cada tentativa de pagamento: reutilizar reduz a aprovação. Mais detalhes em SDK frontend.

Resposta

201 Created
Se a adquirente recusar, a resposta continua 201, com status: "failed" e failureCode preenchido (ver códigos de falha). Campos completos em Referência de cobranças.

Erros

Formato dos erros em Erros.