Skip to main content

Repositório GitHub

Acesse o repositório oficial dos SDKs UPay no GitHub
A Upay oferece SDKs oficiais para facilitar a integração da plataforma de pagamentos em diferentes linguagens de programação. Todos os SDKs são open-source e mantidos pela equipe Upay.

Recursos disponíveis

Todos os SDKs suportam os principais recursos da API Upay:
  • Payment Links: Criar e gerenciar links de pagamento
  • Transações: Listar e consultar transações
  • Produtos: Gerenciar produtos
  • Clientes: Gerenciar clientes
  • Cupons: Validar cupons de desconto
  • Webhooks: Verificar assinaturas de webhooks

JavaScript/TypeScript

Instalação

npm install @upay/upay-js

Uso básico

import UpayClient from '@upay/upay-js';

const upay = new UpayClient({
  apiKey: 'sua_api_key_aqui',
});

// Criar um link de pagamento
const paymentLink = await upay.paymentLinks.create({
  title: 'Produto Premium',
  amount: 10000, // R$ 100,00 em centavos
  description: 'Descrição do produto',
});

console.log(`Link criado: ${upay.paymentLinks.getCheckoutUrl(paymentLink.slug)}`);

// Listar transações
const { data: transactions } = await upay.transactions.list({
  page: 1,
  limit: 10,
});

Recursos

  • Suporte completo a TypeScript com tipos
  • Tratamento de erros específicos
  • Validação de webhooks
  • Exemplos completos incluídos

Documentação completa

Veja a documentação completa do SDK JavaScript/TypeScript

Python

Instalação

pip install upay-python

Uso básico

from upay import UpayClient

upay = UpayClient(api_key="sua_api_key_aqui")

# Criar um link de pagamento
payment_link = upay.payment_links.create({
    "title": "Produto Premium",
    "amount": 10000,  # R$ 100,00 em centavos
    "description": "Descrição do produto"
})

print(f"Link criado: {upay.payment_links.get_checkout_url(payment_link['slug'])}")

# Listar transações
transactions = upay.transactions.list(page=1, limit=10)
print(f"Total de transações: {transactions['pagination']['total']}")

Recursos

  • Compatível com Python 3.8+
  • Sintaxe pythônica e intuitiva
  • Tratamento de exceções específicas
  • Suporte a webhooks

Documentação completa

Veja a documentação completa do SDK Python

PHP

Instalação

composer require upay/upay-php

Uso básico

<?php

use Upay\UpayClient;

$upay = new UpayClient(apiKey: "sua_api_key_aqui");

// Criar um link de pagamento
$paymentLink = $upay->paymentLinks->create([
    'title' => 'Produto Premium',
    'amount' => 10000,  // R$ 100,00 em centavos
    'description' => 'Descrição do produto'
]);

echo "Link criado: " . $upay->paymentLinks->getCheckoutUrl($paymentLink['slug']) . "\n";

// Listar transações
$transactions = $upay->transactions->list(['page' => 1, 'limit' => 10]);
echo "Total de transações: " . $transactions['pagination']['total'] . "\n";

Recursos

  • Compatível com PHP 8.0+
  • Suporte a named arguments
  • Tratamento de exceções específicas
  • Validação de webhooks

Documentação completa

Veja a documentação completa do SDK PHP

Java

O SDK Java está em desenvolvimento ativo. Algumas funcionalidades podem estar limitadas.

Requisitos

  • Java 17+
  • Maven 3.8+

Uso básico

import com.upay.sdk.UpayClient;
import com.fasterxml.jackson.databind.JsonNode;

String apiKey = "sua_api_key_aqui";
String baseUrl = "https://upay-sistema-api.onrender.com";

UpayClient upay = new UpayClient(apiKey, baseUrl, "v1", 30);

// Criar Payment Link
Map<String, Object> options = new HashMap<>();
options.put("description", "Produto Premium");
options.put("status", "ACTIVE");

JsonNode link = upay.paymentLinks.create(
    "Produto Premium",
    10000, // R$ 100,00 em centavos
    options
);

System.out.println("ID: " + link.get("id").asText());
System.out.println("Slug: " + link.get("slug").asText());

Recursos

  • Compatível com Java 17+
  • Integração com Maven
  • Validação de webhooks
  • Operações de leitura e listagem

Documentação completa

Veja a documentação completa do SDK Java

Obter API Key

Para usar qualquer SDK, você precisa de uma API Key:
  1. Acesse o Dashboard Upay
  2. Vá em Configurações > API Keys
  3. Crie uma nova API Key
  4. Copie e use no seu código
Nunca compartilhe sua API Key publicamente ou a inclua em repositórios públicos. Use variáveis de ambiente para armazenar suas credenciais.

Webhooks

Todos os SDKs incluem utilitários para validar assinaturas de webhooks:
import express from 'express';

app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = upay.extractWebhookSignature(req.headers);
  const secret = process.env.WEBHOOK_SECRET;
  
  if (!upay.verifyWebhookSignature(req.body, signature, secret)) {
    return res.status(401).json({ error: 'Assinatura inválida' });
  }

  const event = JSON.parse(req.body.toString());
  // Processar evento
  res.json({ received: true });
});

Tratamento de erros

Todos os SDKs fornecem classes de erro específicas para facilitar o tratamento:
import { 
  UpayError,
  UpayAuthenticationError,
  UpayValidationError,
  UpayNotFoundError,
  UpayRateLimitError 
} from '@upay/upay-js';

try {
  await upay.paymentLinks.create({ title: 'Test' });
} catch (error) {
  if (error instanceof UpayAuthenticationError) {
    console.error('Erro de autenticação:', error.message);
  } else if (error instanceof UpayValidationError) {
    console.error('Erro de validação:', error.message, error.details);
  }
}

Contribuindo

Todos os SDKs são open-source e aceitam contribuições:
  1. Faça um fork do repositório
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -m 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Suporte

Se você encontrar algum problema ou tiver dúvidas: