سرکاری SDKs

پانچ سب سے زیادہ مانگی گئی زبانوں کے لیے REST API پر Typed clients۔ ہر ایک bearer-token auth، 429 اور 5xx پر exponential-backoff retry، اور X-Abundera-Signature header کی HMAC-SHA256 verification کے لیے verifyWebhookSignature helper کے ساتھ آتا ہے۔ MIT-licensed۔

سچائی کا ذریعہ: /docs/openapi.json · Issues: support@abundera.ai

TS

TypeScript / Node

@abundera/qr-pro

Node 18+۔ Zero runtime dependencies۔ ESM اور CJS builds۔

Install کریں

npm install @abundera/qr-pro

ایک code بنائیں

import { AbunderaQRProClient } from "@abundera/qr-pro";

const client = new AbunderaQRProClient({
  apiKey: process.env.ABUNDERA_API_KEY!,
});

const code = await client.createCode({
  destination_url: "https://example.com/launch",
  label: "Spring launch poster",
});

console.log(code.short_url);

Webhook verify کریں

import { verifyWebhookSignature } from "@abundera/qr-pro";

verifyWebhookSignature({
  signature: req.headers["x-abundera-signature"],
  body: rawBody,
  secret: process.env.ABUNDERA_WEBHOOK_SECRET!,
});
// bad signature / skew پر throws, اس line کے بعد body parse کرنا safe ہے

GitHub پر Source →

Py

Python

abundera-qr-pro

Python 3.9+۔ Single dependency (httpx)۔ Sync اور async clients۔

Install کریں

pip install abundera-qr-pro

ایک code بنائیں

from abundera_qr_pro import Client

with Client(api_key="abnd_qrpro_...") as c:
    code = c.create_code(
        destination_url="https://example.com/launch",
        label="Spring launch poster",
    )
    print(code.short_url)

Webhook verify کریں

from abundera_qr_pro import verify_webhook_signature
from abundera_qr_pro.webhook import WebhookVerificationError

try:
    verify_webhook_signature(
        signature=request.headers["X-Abundera-Signature"],
        body=request.body,
        secret=os.environ["ABUNDERA_WEBHOOK_SECRET"],
    )
except WebhookVerificationError:
    return "", 400

GitHub پر Source →

Go

Go

github.com/abundera/qr-pro-go

Go 1.21+۔ صرف Standard library۔ پوری طرح Context-aware۔

Install کریں

go get github.com/abundera/qr-pro-go

ایک code بنائیں

import qrpro "github.com/abundera/qr-pro-go"

c, _ := qrpro.New(os.Getenv("ABUNDERA_API_KEY"))
ctx := context.Background()

code, err := c.CreateCode(ctx, qrpro.CodeCreate{
    DestinationURL: "https://example.com/launch",
    Label:          "Spring launch poster",
})
if err != nil { log.Fatal(err) }
fmt.Println(code.ShortURL)

Webhook verify کریں

if err := qrpro.VerifyWebhookSignature(
    r.Header.Get("X-Abundera-Signature"),
    body,
    os.Getenv("ABUNDERA_WEBHOOK_SECRET"),
    0, // default 300s tolerance
); err != nil {
    http.Error(w, "bad signature", http.StatusBadRequest)
    return
}

GitHub پر Source →

Rb

Ruby

abundera-qr-pro

Ruby 3.0+۔ Faraday پر built۔ Rails initialisers کے ساتھ اچھا چلتا ہے۔

Install کریں

gem install abundera-qr-pro
# یا Gemfile میں
gem "abundera-qr-pro"

ایک code بنائیں

require "abundera/qr_pro"

client = Abundera::QRPro::Client.new(api_key: ENV.fetch("ABUNDERA_API_KEY"))

code = client.create_code(
  destination_url: "https://example.com/launch",
  label: "Spring launch poster",
)

puts code.short_url

Webhook verify کریں

require "abundera/qr_pro/webhook"

begin
  Abundera::QRPro::Webhook.verify!(
    signature: request.headers["X-Abundera-Signature"],
    body: request.raw_post,
    secret: ENV.fetch("ABUNDERA_WEBHOOK_SECRET"),
  )
rescue Abundera::QRPro::Webhook::InvalidSignature
  head :bad_request
end

GitHub پر Source →

PHP

PHP

abundera/qr-pro

PHP 8.1+۔ کسی بھی PSR-18 HTTP client کے ساتھ کام کرتا ہے (Guzzle by default)۔ Laravel اور Symfony service providers اسی package میں ship ہوتے ہیں۔

Install کریں

composer require abundera/qr-pro

ایک code بنائیں

use Abundera\QrPro\Client;

$client = new Client(apiKey: getenv('ABUNDERA_API_KEY'));

$code = $client->createCode(
    destinationUrl: 'https://example.com/launch',
    label: 'Spring launch poster',
);

echo $code->shortUrl;

Webhook verify کریں

use Abundera\QrPro\Webhook;
use Abundera\QrPro\WebhookException;

try {
    Webhook::verify(
        signature: $_SERVER['HTTP_X_ABUNDERA_SIGNATURE'] ?? '',
        body: file_get_contents('php://input'),
        secret: getenv('ABUNDERA_WEBHOOK_SECRET'),
    );
} catch (WebhookException $e) {
    http_response_code(400);
    exit;
}

GitHub پر Source →

ہر SDK کیا cover کرتا ہے

  • Codeslist، get، create، update، delete، slug check، import۔
  • Analyticsfrom/to date filters کے ساتھ JSON اور CSV exports۔
  • Groupslist، create، delete، codes assign کریں۔
  • Webhookslist، create (secret کے ساتھ)، delete، plus signature-verify helper۔
  • User/me، account export۔

Admin، Stripe-webhook، اور infra endpoints جان بوجھ کر SDKs کے دائرے سے باہر ہیں — یہ صرف service-to-service ہیں۔ مکمل endpoint list OpenAPI 3.1 spec میں ہے۔

Postman collection

Postman یا Insomnia میں one-click import: /docs/postman.json (ہر deploy پر OpenAPI spec سے regenerated)۔ ہر request bearer-token auth header template کے ساتھ pre-configured ہے — اپنی API key ایک بار collection level پر set کریں اور ہر endpoint اسے inherit کرتا ہے۔

خام OpenAPI پسند ہے؟ Postman OpenAPI 3.1 کو natively support کرتا ہے: File → Import → Link، پھر https://pro.qr.abundera.ai/docs/openapi.json paste کریں۔

Versioning policy

SDKs SemVer follow کرتے ہیں اور API سے آزادانہ versioned ہیں۔ SDK bugfix (0.1.0 → 0.1.1) API version نہیں بدلتا۔ Additive API change (نئی endpoint، نئی optional field) SDK major bump force نہیں کرتا۔

  • SDK patch (0.1.x) — bugfix، docs، کوئی public-API تبدیلی نہیں۔ Auto-update کے لیے محفوظ۔
  • SDK minor (0.x.0) — نئے API endpoints cover کرنے کے لیے نئے methods، یا ergonomic additions۔ Backwards compatible۔
  • SDK major (1.0.0 → 2.0.0) — rename، removal، type-shape change۔ صرف جب API major ہو، یا جب کسی long-standing SDK ergonomic bug کو ٹھیک کیا جائے جو minor میں ship نہ ہو سکے۔

API versioning۔ URL prefix major version ہے۔ آج: /api/... (v1)۔ Breaking change /api/v2/... کے طور پر ship ہوتی ہے، v1 کم از کم 12 ماہ alive رہتا ہے اور deprecation ونڈو میں Deprecation + Sunset response headers کے ساتھ۔ "Breaking" کی مکمل تعریف /docs/changelog/ پر۔

Support window۔ موجودہ major پر latest minor کو security fixes ملتے ہیں۔ پرانے majors کو paying Pro customers کی درخواست پر security patches ملتے ہیں۔

مثال apps

Code creation، destination update، analytics read، اور webhook signature verification دکھانے والے minimal runnable apps:

  • node-express — TypeScript + Express، replay protection کے ساتھ webhook endpoint۔
  • fastapi — Python 3.11 + FastAPI، signature verification helper wired in۔
  • gin — Go 1.21 + Gin، idiomatic handler pattern۔
  • rails — Rails 7 + Sidekiq، webhook handler as a job۔
  • laravel — Laravel 11، signed-route webhook controller۔

ہر مثال mocked API کے خلاف CI-tested ہے۔ Clone کریں، ABUNDERA_API_KEY اور ABUNDERA_WEBHOOK_SECRET set کریں، run کریں۔

اپنی زبان نہیں دیکھ رہے؟

OpenAPI 3.1 spec سچائی کا ذریعہ ہے۔ openapi-generator سے کسی بھی زبان میں client generate کریں، یا خود ایک thin wrapper لکھیں — API چھوٹی ہے (چھ core resources، bearer-token auth)۔ اگر آپ کسی ایسی زبان کے لیے سرکاری SDK چاہتے ہیں جو ہم cover نہیں کرتے، support@abundera.ai کو email کریں۔