Node Myanmar Payments
Node.js SDK for Myanmar payment gateways: KBZ Pay, Wave Pay, Wave Pay Mini App, AYA Pay, Yoma MMQR and CyberSource. Typed requests and results, exact amounts, no runtime dependencies.
npm install @laranex/myanmar-paymentsRequirements
- Node.js 20+
- No runtime dependencies
Why Node Myanmar Payments
Every Myanmar payment gateway signs its requests and callbacks its own way, reports its own status codes and has its own rules for amounts. Node Myanmar Payments handles all of that behind one typed API for Node.js and any framework: build the payment data, start the payment, then verify the callback the gateway sends back.
- Six gateways, one pattern. KBZ Pay (PWA, QR and in-app), Wave Pay, Wave Pay Mini App, AYA Pay, Yoma MMQR and CyberSource, each with its own class and the same three steps.
- One typed result per flow.
RedirectPayment,FormPayment,QrPayment,AppPaymentorMiniAppPaymentholds exactly what the next step needs: a URL to redirect to, an auto-submitting form, a QR code, the signed order for the KBZ Pay mobile SDK or the signed payment for Wave's mini app SDK. See Payment Flows. - Exact amounts, checked against each gateway's rules. An
Amountis kept as decimal text, takes abigintof any size and never passes through a fractionalnumber. Decimals, currency and limits follow each gateway's official documentation and are checked before any request is sent. See Amounts. - Verified callbacks.
handleCallback()checks the gateway's signature without a network call, maps its status onto onePaymentStatusand gives you the acknowledgement the gateway expects. When a callback is late, ask KBZ Pay, AYA Pay or Yoma MMQR withstatus(). See Callbacks & Status. - Errors that say what went wrong. A missing setting, an invalid field, a gateway error and a bad signature each throw their own error class, with a message that names the setting, the field or the gateway's code.
- No runtime dependencies. Requests go through the global
fetch(or anyHttpClientyou pass) and signing usesnode:crypto. ES modules and CommonJS both ship with TypeScript types, and callbacks are read from Node's request or a webRequest, so Express, Fastify, Next.js and Hono all work. NestJS apps use NestJS Myanmar Payments, which wraps this package. - Same behavior in every language. The PHP, Go, Node.js and Python SDKs pass one shared set of test vectors for signing and callback verification, and read the same environment variables, so one
.envfile and one token cache serve them all. - Nothing stored for you. The package keeps no tables and no webhook log. Handling Webhooks shows the recommended flow as code you copy: verify, store, acknowledge, then process each call once.
- Easy to test. Every gateway call goes through the
fetchor client you pass, so your tests fake the responses, replay signed callbacks and never touch the network. See Testing.