Expand description
Unofficial Rust SDK for the Pakasir payment gateway.
The crate covers the REST surface of the API plus a few helpers most integrations end up writing anyway:
Client– async HTTP client with retries, jittered backoff, andRetry-Afterhandling.TransactionService– create / cancel / detail.SimulationService– sandbox payment simulation.WebhookParser– parse and validate webhook payloads.build_payment_url– build the hosted checkout redirect URL.QrGenerator– render QRIS strings (or anything else) to PNG bytes.
Error messages are localized through Language (English by default,
Indonesian when the client is configured for it).
§Quick start
use pakasir_sdk::{Client, PaymentMethod, TransactionService};
use pakasir_sdk::transaction::CreateRequest;
let client = Client::builder("your-project-slug", "your-api-key").build();
let transactions = TransactionService::new(client);
let response = transactions
.create(
PaymentMethod::Qris,
&CreateRequest {
order_id: "INV123456".into(),
amount: 99_000,
},
)
.await?;
println!("payment number: {}", response.payment.payment_number);
println!("total payment: {}", response.payment.total_payment);§Modules
| Module | What it does |
|---|---|
client | HTTP transport, retry policy, builder. |
constants | SDK metadata, API paths, payment / status enums. |
error | The crate-wide Error enum and Result alias. |
i18n | Language selector and message catalog. |
payment_url | Hosted checkout redirect URL builder. |
qr | QR PNG generation. |
simulation | Sandbox payment simulation. |
timefmt | Small RFC 3339 parsing helper. |
transaction | Transaction service. |
webhook | Webhook parser and event validation. |
The gRPC server layer from the original implementation is not part of this crate.
Re-exports§
pub use client::Client;pub use client::ClientBuilder;pub use constants::PaymentMethod;pub use constants::SDK_NAME;pub use constants::SDK_REPOSITORY;pub use constants::SDK_VERSION;pub use constants::TransactionStatus;pub use constants::user_agent;pub use error::Error;pub use error::Result;pub use i18n::Language;pub use payment_url::Options as PaymentUrlOptions;pub use payment_url::UrlBuildError;pub use payment_url::build as build_payment_url;pub use qr::Options as QrOptions;pub use qr::QrError;pub use qr::QrGenerator;pub use qr::RecoveryLevel;pub use simulation::SimulationService;pub use transaction::TransactionService;pub use webhook::Event as WebhookEvent;pub use webhook::Parser as WebhookParser;pub use webhook::WebhookError;
Modules§
- client
- HTTP transport for the SDK.
- constants
- SDK metadata, API paths, and the enums shared across the crate.
- error
- Crate-wide error type.
- i18n
- Localized error messages.
- payment_
url - Hosted checkout redirect URL builder.
- qr
- QR code rendering.
- simulation
- Sandbox payment simulation service.
- timefmt
- Tiny RFC 3339 parsing helper.
- transaction
- Transaction service: create, cancel, and detail.
- webhook
- Webhook payload parser.