Skip to main content

Crate pakasir_sdk

Crate pakasir_sdk 

Source
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:

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

ModuleWhat it does
clientHTTP transport, retry policy, builder.
constantsSDK metadata, API paths, payment / status enums.
errorThe crate-wide Error enum and Result alias.
i18nLanguage selector and message catalog.
payment_urlHosted checkout redirect URL builder.
qrQR PNG generation.
simulationSandbox payment simulation.
timefmtSmall RFC 3339 parsing helper.
transactionTransaction service.
webhookWebhook 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.