{"_id":"@abapayway/node","name":"@abapayway/node","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@abapayway/node","version":"0.1.0","description":"Unofficial Node.js/TypeScript SDK for ABAPayWay — Cambodia's leading payment gateway","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write .","test":"jest","test:coverage":"jest --coverage","prepublishOnly":"npm run build"},"keywords":["abapayway","payway","cambodia","payment","sdk"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/abapayway/node.git"},"engines":{"node":">=18"},"devDependencies":{"@biomejs/biome":"^1.9.4","@types/jest":"^29.5.14","@types/node":"^22.10.2","jest":"^29.7.0","ts-jest":"^29.2.5","tsup":"^8.3.5","typescript":"^5.7.2"},"_id":"@abapayway/node@0.1.0","gitHead":"a1a7ac150d8f72211babb91c7b5e4acf2869bba1","bugs":{"url":"https://github.com/abapayway/node/issues"},"homepage":"https://github.com/abapayway/node#readme","_nodeVersion":"22.19.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-jTIMImPTV+0lx5QeCtFuhktnTNZwaAUj+30ThBAtO5IY+Ys//aD/n2OCvqk1tg6hNze0xJYVfKxuzRDuq95IBQ==","shasum":"9f5af0e6cb3f0d11fe98fbdc415aa0cd5bb18a96","tarball":"https://registry.npmjs.org/@abapayway/node/-/node-0.1.0.tgz","fileCount":9,"unpackedSize":325902,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH7/nnWzfYJ9ciA6x3gk8qrmqVD/UePsCOpojdGlZXlOAiBFoMBkzzOUhHkhVP2v48Ya6hpUopuVA9bpsb+xqea+0Q=="}]},"_npmUser":{"name":"visalchivan","email":"chivanvisal10@gmail.com"},"directories":{},"maintainers":[{"name":"visalchivan","email":"chivanvisal10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node_0.1.0_1780470725266_0.744736341939777"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T07:12:05.040Z","0.1.0":"2026-06-03T07:12:05.441Z","modified":"2026-06-03T07:12:05.761Z"},"maintainers":[{"name":"visalchivan","email":"chivanvisal10@gmail.com"}],"description":"Unofficial Node.js/TypeScript SDK for ABAPayWay — Cambodia's leading payment gateway","homepage":"https://github.com/abapayway/node#readme","keywords":["abapayway","payway","cambodia","payment","sdk"],"repository":{"type":"git","url":"git+https://github.com/abapayway/node.git"},"bugs":{"url":"https://github.com/abapayway/node/issues"},"license":"MIT","readme":"# @abapayway/node\n\n[![npm version](https://img.shields.io/npm/v/@abapayway/node.svg)](https://www.npmjs.com/package/@abapayway/node)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![CI](https://github.com/abapayway/node/actions/workflows/ci.yml/badge.svg)](https://github.com/abapayway/node/actions/workflows/ci.yml)\n\nUnofficial Node.js/TypeScript SDK for [ABAPayWay](https://www.payway.com.kh/) — Cambodia's leading payment gateway by ABA Bank.\n\nZero runtime dependencies. Native `fetch` and Node.js `crypto` only.\n\n## Install\n\n```bash\nnpm install @abapayway/node\n```\n\nRequires **Node.js 18+**.\n\n## Quick start\n\n```typescript\nimport { ABAPayWay, Currency, PaymentOption } from \"@abapayway/node\";\n\nconst payway = new ABAPayWay({\n  merchantId: process.env.PAYWAY_MERCHANT_ID!,\n  apiKey: process.env.PAYWAY_API_KEY!,\n  sandbox: true,\n});\n\nconst orderId = `ORDER-${Date.now()}`;\n\n// Create checkout (returns HTML to render)\nconst { html } = await payway.checkout.create({\n  orderId,\n  amount: 10.5,\n  currency: Currency.USD,\n  paymentOption: PaymentOption.ABAPAY,\n  returnUrl: \"https://yoursite.com/payment/return\",\n  cancelUrl: \"https://yoursite.com/payment/cancel\",\n});\n\n// Check payment status (within 7 days of creation)\nconst status = await payway.checkout.checkTransaction(orderId);\nconsole.log(status.data.payment_status);\n```\n\n## Modules\n\n| Module | Description |\n|--------|-------------|\n| `checkout` | Purchase, transaction details, close/check, list, exchange rates |\n| `transaction` | Lookup by `merchant_ref` (KHQR) |\n| `refund` | Full or partial refunds |\n| `webhook` | HMAC-SHA512 signature verification |\n| `credentials` | Link account/card, token payments, renew, remove |\n| `qr` | Generate payment QR codes |\n| `paymentLink` | Create and retrieve payment links |\n| `preAuth` | Create, complete, or cancel pre-authorizations |\n| `payout` | Funds routing and beneficiary management |\n\n## Scheduled subscriptions\n\n```typescript\nimport { TokenType, SubscriptionFrequency } from \"@abapayway/node\";\n\n// Register (CITR_FIX + frequency)\nawait payway.credentials.subscribe({\n  ctid: \"user-123\",\n  requestId: \"sub-001\",\n  amount: 20,\n  currency: Currency.USD,\n  returnUrl: \"https://yoursite.com/return\",\n  tokenFlag: TokenType.CITR_FIX,\n  frequency: SubscriptionFrequency.MONTHLY,\n});\n\n// Bill each cycle (MITR_FIX)\nawait payway.credentials.chargeSubscription(token, {\n  orderId: \"bill-001\",\n  amount: 20,\n  currency: Currency.USD,\n  tokenType: TokenType.MITR_FIX,\n});\n```\n\n## Pre-authorization\n\n```typescript\nconst { html } = await payway.preAuth.create({\n  orderId: \"HOLD-001\",\n  amount: 100,\n  currency: Currency.USD,\n  returnUrl: \"https://yoursite.com/return\",\n});\n\n// Later: capture or cancel\nawait payway.preAuth.complete(\"HOLD-001\", { amount: 100 });\nawait payway.preAuth.cancel(\"HOLD-001\");\n```\n\n## Webhook verification\n\n```typescript\napp.post(\"/webhook\", express.json(), (req, res) => {\n  const signature = req.headers[\"x-payway-hmac-sha512\"] as string;\n\n  if (!payway.webhook.verify(req.body, signature)) {\n    return res.status(401).send(\"Invalid signature\");\n  }\n\n  // Process { tran_id, status, apv, return_params }\n  res.json({ ok: true });\n});\n```\n\n## RSA-encrypted endpoints\n\nRefund, pre-auth, payment link, and payout APIs require an RSA public key from PayWay:\n\n```typescript\nconst payway = new ABAPayWay({\n  merchantId: \"...\",\n  apiKey: \"...\",\n  rsaPublicKey: process.env.PAYWAY_RSA_PUBLIC_KEY!,\n  sandbox: true,\n});\n```\n\n## Environment URLs\n\n| Environment | Base URL |\n|-------------|----------|\n| Sandbox | `https://checkout-sandbox.ababank.com` |\n| Production | `https://checkout.payway.com.kh` |\n\n## Examples\n\n- [Node.js basic](./examples/node-basic/index.ts)\n- [Express](./examples/express/index.ts)\n- [Next.js App Router](./examples/nextjs/app/api/)\n\n## Documentation\n\n- [PayWay Developer Suite](https://developer.payway.com.kh/overview-865678m0)\n- [API Endpoints](https://developer.payway.com.kh/api-endpoints-984508m0)\n- [Ecommerce Checkout](https://developer.payway.com.kh/ecommerce-checkout-3158159f0)\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## License\n\n[MIT](./LICENSE) — unofficial community SDK, not affiliated with ABA Bank.\n","readmeFilename":"README.md","_rev":"1-f95458abc38c5fbc17929b66709cc716"}