Documentation Index
Fetch the complete documentation index at: https://docs.upaybr.com/llms.txt
Use this file to discover all available pages before exploring further.
Upay Java SDK
SDK oficial da Upay para Java. Compatível com Java 17+ e Spring Boot.
Instalação
Requisitos
Certifique-se de ter instalado:
- Java: JDK 17 ou superior
- Maven: Para gerenciar dependências e construir o projeto
Instalando Maven
Linux:
Windows (usando Chocolatey):
Adicionando a dependência
Este SDK ainda não está publicado no Maven Central. Clone e instale localmente:
git clone https://github.com/anthonymengottii/upay-java-sdk
cd upay-java-sdk && mvn install -DskipTests
Após o mvn install, adicione ao seu pom.xml:
<dependency>
<groupId>com.upay</groupId>
<artifactId>upay-java</artifactId>
<version>1.0.0</version>
</dependency>
E a dependência de serialização JSON:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.1</version>
</dependency>
Uso Rápido
import com.upay.UpayClient;
// Inicialize o SDK com sua API Key
UpayClient upay = new UpayClient(System.getenv("UPAY_API_KEY"));
Criando um Link de Pagamento
import com.upay.UpayClient;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.Map;
UpayClient upay = new UpayClient(System.getenv("UPAY_API_KEY"));
JsonNode link = upay.paymentLinks.create(Map.of(
"title", "Produto Premium",
"amountCents", 9900,
"description", "Acesso vitalício"
));
System.out.println(link.path("url").asText()); // URL de checkout para o cliente
Resposta
{
"id": "lnk_abc123",
"title": "Produto Premium",
"description": "Acesso vitalício",
"amountCents": 9900,
"status": "ACTIVE",
"url": "https://pay.upaybr.com/l/abc123",
"createdAt": "2026-04-08T00:00:00.000Z",
"updatedAt": "2026-04-08T00:00:00.000Z"
}
Criando uma Transação PIX
JsonNode tx = upay.transactions.create(Map.of(
"product", "Curso Java",
"paymentMethod", "PIX",
"amountCents", 19900,
"clientName", "João Silva",
"clientEmail", "joao@example.com",
"clientDocument", "12345678900"
));
System.out.println(tx.path("pixCopiaECola").asText());
Validando um Cupom
JsonNode result = upay.coupons.validate("DESCONTO10", 19900);
if (result.path("valid").asBoolean()) {
System.out.println("Desconto: " + result.path("discountCents").asInt());
System.out.println("Total: " + result.path("finalAmountCents").asInt());
}
Validação de Webhooks
// Spring Boot
@PostMapping("/webhook")
public ResponseEntity<?> webhook(
@RequestBody byte[] body,
@RequestHeader("x-webhook-signature") String signature
) throws Exception {
if (!upay.verifyWebhookSignature(new String(body), signature, System.getenv("UPAY_WEBHOOK_SECRET"))) {
return ResponseEntity.status(401).body(Map.of("error", "Assinatura inválida"));
}
return ResponseEntity.ok(Map.of("received", true));
}
Tratamento de Erros
import com.upay.utils.UpayException;
try {
JsonNode tx = upay.transactions.create(Map.of(...));
} catch (UpayException e) {
System.err.println("Erro " + e.getStatusCode() + ": " + e.getMessage());
} catch (IOException | InterruptedException e) {
System.err.println("Erro de rede: " + e.getMessage());
}