Official Java SDK for Payted - Accept M-Pesa, e-Mola & Visa payments in Mozambique with 0% fees on sales
# Payted Java SDK
Official Java SDK for **Payted** - Accept M-Pesa, e-Mola & Visa payments in Mozambique with **0% fees on sales**.
## Installation
### Maven
```xml
mz.co.payted
payted-java
1.0.0
```
### Gradle
```groovy
implementation 'mz.co.payted:payted-java:1.0.0'
```
## Requirements
- Java 17+
- OkHttp 4.x
- Gson 2.x
## Quick Start
```java
import mz.co.payted.client.PaytedClient;
import mz.co.payted.dto.*;
// Initialize client
PaytedClient client = new PaytedClient("your-api-token");
// Create a checkout session
CheckoutResponse checkout = client.checkout().create(
CheckoutRequest.builder()
.appId(1)
.valorTotal(100.00)
.referenciaExterna("ORDER-" + System.currentTimeMillis())
.returnUrl("
myapp.com")
.cancelUrl("
myapp.com")
.addItem(Item.builder()
.nome("Produto Exemplo")
.quantidade(1)
.precoUnitario(100.00)
.build())
.build()
);
// Redirect customer to checkout page
System.out.println("Redirect to: " + checkout.getCheckoutUrl());
System.out.println("Payment ID: " + checkout.getPagamentoId());
```
## Usage Examples
### Checkout Flow (Redirect)
Best for e-commerce websites where customers are redirected to a payment page.
```java
CheckoutResponse checkout = client.checkout().create(
CheckoutRequest.builder()
.appId(1)
.valorTotal(500.00)
.referenciaExterna("ORDER-123")
.returnUrl("
myapp.com")
.cancelUrl("
myapp.com")
.build()
);
if (checkout.isSuccess()) {
// Redirect customer
response.sendRedirect(checkout.getCheckoutUrl());
}
```
### Direct Debit (M-Pesa / e-Mola)
Best for POS systems, subscriptions, or when you have the customer's phone number.
```java
DebitResponse debit = client.debit().process(
DebitRequest.builder()
.appId(1)
.valorTotal(50.00)
.referenciaExterna("POS-456")
.metodo(DebitRequest.Method.MPESA) // or EMOLA
.numeroCliente("841234567")
.descricao("Payment for order #456")
.build()
);
if (debit.isPaid()) {
System.out.println("Payment successful!");
System.out. …