Skip to main content

upag-js

Pacote npm oficial para o browser. Código em github.com/upag/upag-js.
Use somente a chave publicável (pk_test_... / pk_live_...) no front-end. Nunca use sk_....

Instalação

Script tag (sem bundler)

dist/v1/upag.min.js é um arquivo único que define window.UpagJs, sem type="module":

Inicialização e host

pk_test_ usa https://api.upag.dev/v1 (sandbox) e qualquer outra chave usa https://api.upag.io/v1. Passe { publicKey, baseURL, timeout } para sobrescrever o host (baseURL precisa ser https, exceto localhost). O ambiente resolvido fica em upag.environment ('sandbox' | 'production').

Checkout do pagador

Uma chave publicável não cria sessões nem lista o catálogo. A página do pagador parte do código de um link de pagamento (sem autenticação) e usa o clientSecret devolvido uma única vez por start para ler e pagar a sessão. Veja o fluxo em Checkout hospedado.

Teste grátis

Quando session.trial existe e session.amount é 0, nada é cobrado hoje: guarde um cartão para a primeira cobrança em vez de enviar charge (opcional se session.paymentMethodCollection for 'if_required'). Veja Teste grátis.

Cartões

Tokeniza um cartão e devolve um id para o servidor criar a cobrança. Número e CVV nunca são devolvidos.
create é a única operação de cartão que uma chave publicável pode fazer. Listar, obter e remover exigem a chave secreta, no servidor. Referência: Criar cartão.

Antifraude

Instanciar o cliente no browser inicia o coletor de dispositivo. Envie sessionId() como meta.session_id na cobrança de cartão e chame rotate() antes de uma nova tentativa.

3D Secure

Autentica um cartão salvo com o banco do comprador antes da cobrança. O servidor abre a sessão com a chave secreta (Criar sessão 3DS) e o browser só conclui, com o clientSecret da sessão. O SDK coleta os dados do dispositivo e abre o desafio quando o banco exige.
A sessão autentica um cartão para um valor e parcelas, e pode ser usada por uma cobrança. Mantenha o clientSecret fora de logs e URLs. authenticate só roda no browser (não em SSR) e uma autenticação por vez. Fluxo completo: Cartão com 3DS.

Frameworks

O mesmo cliente funciona em Vue, Svelte ou JavaScript puro: instancie uma vez e reutilize.

Erros

Falhas são lançadas com detalhes:
Erros devolvidos pela API trazem o code dela (por exemplo session_expired, unauthorized, too_many_attempts).

Referência dos métodos

Boas práticas de segurança

  • Use chaves publicáveis no front-end e tokenização de cartão.
  • Valide tudo também no backend e use HTTPS em produção.
  • Nunca use chaves secretas no front-end nem guarde dados de cartão.

Onde ir depois

Cartão com 3DS

Browser e servidor, passo a passo.

Checkout hospedado

Link, sessão e confirmação.

SDK Node.js

Criar links, sessões e cobranças no servidor.

Índice de SDKs

Comparativo upag / upag-js.