SDKs
Plugipay ships SDKs in three languages, with feature parity across all three. Pick the one for your stack:
| Language | Package | Install |
|---|---|---|
| Node.js | @forjio/plugipay-node |
npm install @forjio/plugipay-node |
| Python | plugipay |
pip install plugipay |
| Go | github.com/hachimi-cat/saas-plugipay/sdk/go |
go get github.com/hachimi-cat/saas-plugipay/sdk/go |
All three:
- Implement the same surface: every API resource is exposed as a typed method.
- Handle HMAC signing automatically — you provide the key, they sign every request.
- Provide a
verifyWebhookhelper for inbound events. - Use only minimal dependencies (Node: zero runtime deps + axios; Python:
httpx; Go: stdlib). - Are open source: code is in the saas-plugipay repo under
sdk/<lang>/.
When to use which
If your existing stack is in Node, Python, or Go: use the matching SDK. There's no perf or feature reason to use one over another — pick your language.
If your stack is in another language (Ruby, PHP, Rust, Java, Elixir, etc.): use the raw API. HMAC signing is straightforward — we have customers integrating in all of those languages without an SDK. We don't currently plan to publish SDKs in additional languages, but if there's strong demand, email us.
Quick comparison
Same call in three languages — create a checkout session:
Node.js:
import { PlugipayClient } from '@forjio/plugipay-node';
const plugipay = new PlugipayClient({
keyId: process.env.PLUGIPAY_KEY_ID,
keySecret: process.env.PLUGIPAY_KEY_SECRET,
});
const session = await plugipay.checkoutSessions.create({
amount: 250000,
currency: 'IDR',
successUrl: 'https://example.com/success',
cancelUrl: 'https://example.com/cancel',
});
Python:
from plugipay import PlugipayClient
import os
plugipay = PlugipayClient(
key_id=os.environ["PLUGIPAY_KEY_ID"],
key_secret=os.environ["PLUGIPAY_KEY_SECRET"],
)
session = plugipay.checkout_sessions.create(
amount=250000,
currency="IDR",
success_url="https://example.com/success",
cancel_url="https://example.com/cancel",
)
Go:
import plugipay "github.com/hachimi-cat/saas-plugipay/sdk/go"
client, _ := plugipay.NewClient(plugipay.ClientOptions{
KeyID: os.Getenv("PLUGIPAY_KEY_ID"),
KeySecret: os.Getenv("PLUGIPAY_KEY_SECRET"),
})
session, _ := client.CheckoutSessions.Create(ctx, plugipay.CheckoutSessionInput{
Amount: 250000,
Currency: "IDR",
SuccessURL: "https://example.com/success",
CancelURL: "https://example.com/cancel",
})
The differences are purely idiomatic: camelCase in Node, snake_case in Python, PascalCase in Go. The underlying API call is identical.
Versioning
All SDKs follow semantic versioning:
- MAJOR bumps for breaking changes (rare; we'll batch them).
- MINOR bumps for new features.
- PATCH bumps for fixes.
Current versions:
- Node:
0.x(active) - Python:
0.x(active) - Go:
0.x(active)
Pre-1.0 means we may still make small breaking changes between minor versions. We document every break in the changelog. Once we hit 1.0 (target: mid-2026), the major/minor/patch contract becomes strict.
Per-language guides
- Node.js — install, auth, every resource, webhooks, types.
- Python — same surface in Python.
- Go — same surface in Go.
Open-source
The SDKs live in the same repo as Plugipay itself:
- Node: saas-plugipay/sdk/node
- Python: saas-plugipay/sdk/python
- Go: saas-plugipay/sdk/go
Contributions welcome. PRs go through the same review as the rest of the codebase. Issues at github.com/hachimi-cat/saas-plugipay/issues.
Per-language deep dives
Same shape per language — pick your stack:
- Node.js SDK — install, quickstart, auth, errors, pagination, webhooks, full reference
- Python SDK — same shape, Python idioms
- Go SDK — same shape, Go idioms
Next
- Installation — if you haven't installed an SDK yet.
- Concepts — the data model the SDKs expose.
- API reference — the underlying HTTP API.