@mongolian-payment/monpay
v1.0.0
Published
MonPay payment SDK for Node.js - QR payments and deeplink invoices
Downloads
75
Maintainers
Readme
@mongolian-payment/monpay
TypeScript SDK for MonPay payment integration. Supports both QR code payments and deeplink invoices with zero dependencies.
Installation
npm install @mongolian-payment/monpayRequires Node.js >= 18.0.0 (uses native fetch and btoa).
QR Payments
Use MonPayQrClient for QR-based payments with HTTP Basic Auth.
import { MonPayQrClient } from "@mongolian-payment/monpay";
const client = new MonPayQrClient({
endpoint: "https://api.monpay.mn",
username: "your-username",
accountId: "your-account-id",
callbackUrl: "https://yoursite.com/monpay/callback",
});
// Generate a QR code
const qr = await client.generateQr(5000);
console.log(qr.result.qrcode); // base64 QR image
console.log(qr.result.uuid); // UUID for tracking
// Check payment status
const status = await client.checkQr(qr.result.uuid);
console.log(status.result.transactionId);
// Parse callback
const callback = client.parseCallback(new URL(callbackUrl));
console.log(callback.amount, callback.status);Deeplink Invoices
Use MonPayDeeplinkClient for deeplink-based payments with OAuth2.
import { MonPayDeeplinkClient } from "@mongolian-payment/monpay";
const client = new MonPayDeeplinkClient({
endpoint: "https://api.monpay.mn",
clientId: "your-client-id",
clientSecret: "your-client-secret",
grantType: "client_credentials",
webhookUrl: "https://yoursite.com/monpay/webhook",
redirectUrl: "https://yoursite.com/monpay/redirect",
});
// Create a deeplink invoice (auto-authenticates)
const invoice = await client.createDeeplink(
10000, // amount
"P2B", // invoiceType
"branch1", // branchUsername (receiver)
"Order #42" // description
);
console.log(invoice.result.id);
// Check invoice status
const status = await client.checkInvoice(invoice.result.id);
console.log(status.result.status, status.result.bankName);
// Parse callback
const callback = client.parseCallback(new URL(webhookUrl));
console.log(callback.invoiceId, callback.status);Types
All request/response types are exported:
import type {
InvoiceType,
Bank,
MonPayQrConfig,
MonPayDeeplinkConfig,
MonPayQrResponse,
MonPayCheckResponse,
MonPayCallback,
DeeplinkCreateResponse,
DeeplinkCheckResponse,
DeeplinkCallback,
} from "@mongolian-payment/monpay";Error Handling
All API errors throw MonPayError with HTTP status code and response body:
import { MonPayError } from "@mongolian-payment/monpay";
try {
await client.generateQr(5000);
} catch (err) {
if (err instanceof MonPayError) {
console.error(err.message); // Human-readable message
console.error(err.statusCode); // HTTP status code
console.error(err.response); // Raw response body
}
}License
MIT
