{"_id":"@affidev/affipay-node","_rev":"2-93646d3106cb0a513051b4cd16d6f3dc","name":"@affidev/affipay-node","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@affidev/affipay-node","version":"1.0.0","keywords":["affidev","affipay","payment-gateway","payment","indonesia"],"author":{"name":"eabdalmufid","email":"mail@affidev.com"},"license":"MIT","_id":"@affidev/affipay-node@1.0.0","maintainers":[{"name":"eabdalmufid","email":"eabdalmufid@gmail.com"}],"homepage":"https://github.com/eabdalmufid/affipay-node","bugs":{"url":"https://github.com/eabdalmufid/affipay-node/issues"},"dist":{"shasum":"70be8a018dcb3caca1261751f0a47b2f8b7749e8","tarball":"https://registry.npmjs.org/@affidev/affipay-node/-/affipay-node-1.0.0.tgz","fileCount":5,"integrity":"sha512-PacDtfIxlTkjXYAa9OYCplYGkARU75iUoI2XZmq19YPeSeUd18+N1Tzr+3vY15dQVxrupnAg0cR4Nifvw5ndpQ==","signatures":[{"sig":"MEYCIQDDjzTr2ltj9ZYgEkWnKxpUCe37MY1vzVLAg88quvwtewIhAPIAR9ZekTtmfThp0ve6Pz8PCIOs/l+iwHwwuSAj9ZqH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8262},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"187ab0f8bbda288e379faf7b6969001e45d890b0","scripts":{"build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"const fs = require('fs'); if (fs.existsSync('dist')) fs.rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -p tsconfig.json --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"eabdalmufid","email":"eabdalmufid@gmail.com"},"repository":{"url":"git+https://github.com/eabdalmufid/affipay-node.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK/client untuk integrasi payment gateway Affipay","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2"},"_npmOperationalInternal":{"tmp":"tmp/affipay-node_1.0.0_1778578688261_0.5069603666240976","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@affidev/affipay-node","version":"1.1.0","description":"SDK/client untuk integrasi payment gateway Affipay","engines":{"node":">=18.0.0"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"clean":"node -e \"const fs = require('fs'); if (fs.existsSync('dist')) fs.rmSync('dist', { recursive: true, force: true })\"","build":"npm run clean && tsc -p tsconfig.json","watch":"tsc -p tsconfig.json --watch","prepublishOnly":"npm run build"},"keywords":["affidev","affipay","payment-gateway","payment","indonesia"],"author":{"name":"eabdalmufid","email":"mail@affidev.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/eabdalmufid/affipay-node.git"},"type":"module","publishConfig":{"access":"public"},"devDependencies":{"typescript":"^6.0.2"},"homepage":"https://github.com/eabdalmufid/affipay-node","bugs":{"url":"https://github.com/eabdalmufid/affipay-node/issues"},"gitHead":"1979d78d4fee51c7954d006513df11a6efec2221","_id":"@affidev/affipay-node@1.1.0","_nodeVersion":"22.14.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-An3e0D53Eoq94JEzGtttoDFY1+TFMa0ytgQyfNEN9vO9fHiyZzHH/nc3tuvDrwkmN8RS8NvCvWiD8QPDjHpLrg==","shasum":"c8789d7a2f1e61eafc4134de4298b45dab48c046","tarball":"https://registry.npmjs.org/@affidev/affipay-node/-/affipay-node-1.1.0.tgz","fileCount":5,"unpackedSize":9755,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG0wcUZUAphMnMayll1VnlTQ3UTN3jWb+Q3Cdux3t8xVAiAP/72y9u2zv6IrC6vSGcHTsgR/e9URxzuDdkzIbmyIKQ=="}]},"_npmUser":{"name":"eabdalmufid","email":"eabdalmufid@gmail.com"},"directories":{},"maintainers":[{"name":"eabdalmufid","email":"eabdalmufid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/affipay-node_1.1.0_1779195579612_0.7505487220247677"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T09:38:08.156Z","modified":"2026-05-19T12:59:39.915Z","1.0.0":"2026-05-12T09:38:08.404Z","1.1.0":"2026-05-19T12:59:39.766Z"},"bugs":{"url":"https://github.com/eabdalmufid/affipay-node/issues"},"author":{"name":"eabdalmufid","email":"mail@affidev.com"},"license":"MIT","homepage":"https://github.com/eabdalmufid/affipay-node","keywords":["affidev","affipay","payment-gateway","payment","indonesia"],"repository":{"type":"git","url":"git+https://github.com/eabdalmufid/affipay-node.git"},"description":"SDK/client untuk integrasi payment gateway Affipay","maintainers":[{"name":"eabdalmufid","email":"eabdalmufid@gmail.com"}],"readme":"# @affidev/affipay-node\r\n\r\nOfficial SDK untuk integrasi API Affipay Payment Gateway (QRIS). Bisa digunakan di **Node.js (>= 18)** baik dengan **TypeScript** maupun **JavaScript (ESM)**.\r\n\r\n## Features\r\n\r\n- **Typed Response**: Autocomplete otomatis untuk TypeScript & JavaScript.\r\n- **Modern**: Menggunakan native Fetch API, ringan tanpa dependensi eksternal.\r\n- **Secure**: Validasi input dasar sebelum mengirim request ke API.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @affidev/affipay-node\r\n```\r\n\r\n## Quick Start\r\n\r\n### TypeScript / JavaScript (ESM)\r\n```javascript\r\nimport { createAffipayClient } from \"@affidev/affipay-node\";\r\n\r\nconst client = createAffipayClient({\r\n  apiKey: \"api_key_project_kamu\",\r\n});\r\n\r\ntry {\r\n  // 1. Membuat Transaksi QRIS\r\n  const payment = await client.createPayment({\r\n    amount: 50000,\r\n  });\r\n  console.log(\"QRIS String:\", payment.qris_string);\r\n  console.log(\"Total Bayar:\", payment.total); // Nominal + unique fee\r\n\r\n  // 2. Cek Status\r\n  const status = await client.checkStatus(payment.reference_id);\r\n  console.log(\"Status:\", status.status); // pending, paid, expired\r\n} catch (error) {\r\n  console.error(\"Error:\", error.message);\r\n}\r\n```\r\n\r\n## API Reference\r\n\r\n### `createAffipayClient(options)`\r\nMembuat instance client.\r\n\r\n| Option | Type | Required | Default |\r\n| --- | --- | --- | --- |\r\n| `apiKey` | `string` | Ya | - |\r\n| `baseUrl` | `string` | Tidak | `https://pay.affidev.com` |\r\n\r\n### `client.createPayment(payload)`\r\nMengembalikan `Promise<CreatePaymentResponse>`.\r\n- `payload.amount`: (Wajib) Integer positif.\r\n\r\n**Response Structure (`CreatePaymentResponse`):**\r\n- `reference_id` (string): Kode referensi transaksi.\r\n- `amount` (number): Nominal dasar transaksi.\r\n- `fee` (number): Biaya layanan (MDR 0.7%).\r\n- `unique_code` (number): Kode unik transaksi (+ / -).\r\n- `total` (number): Total yang harus dibayar oleh pembeli.\r\n- `net_amount` (number): Bersih yang didapat oleh merchant setelah potongan.\r\n- `qris_string` (string): QRIS payload string.\r\n- `expired_at` (string): Waktu kadaluarsa transaksi.\r\n- `fee_merchant` (boolean): Apakah merchant menanggung biaya.\r\n\r\n### `client.checkStatus(referenceId)`\r\nMengembalikan `Promise<CheckStatusResponse>`.\r\nMengecek status transaksi berdasarkan `referenceId`.\r\n\r\n**Response Structure (`CheckStatusResponse`):**\r\n- `reference_id` (string): Kode referensi transaksi.\r\n- `amount` (number): Nominal dasar transaksi.\r\n- `fee` (number): Biaya layanan (MDR 0.7%).\r\n- `unique_code` (number): Kode unik transaksi.\r\n- `total` (number): Total yang dibayar.\r\n- `net_amount` (number): Bersih yang didapat merchant.\r\n- `qris_string` (string): QRIS payload string.\r\n- `status` (string): `'pending' | 'paid' | 'expired' | 'demo'`.\r\n- `created_at` (string): Waktu pembuatan.\r\n- `expired_at` (string): Waktu kadaluarsa.\r\n- `paid_at` (string | null): Waktu pembayaran (jika sukses).\r\n- `fee_merchant` (boolean): Apakah merchant menanggung biaya.\r\n\r\n## Webhook / Callback\r\n\r\nAnda bisa menggunakan interface `AffipayWebhookPayload` untuk menangani callback di server Anda:\r\n\r\n```typescript\r\n// Contoh dengan Express (TypeScript)\r\nimport { AffipayWebhookPayload } from \"@affidev/affipay-node\";\r\n\r\napp.post('/webhook', (req, res) => {\r\n  const data = req.body as AffipayWebhookPayload;\r\n\r\n  if (data.status === 'paid') {\r\n    console.log('Pembayaran Berhasil:', data.reference_id);\r\n  }\r\n  \r\n  res.json({ ok: true });\r\n});\r\n```\r\n\r\n## Repository\r\n\r\n- Source: https://github.com/eabdalmufid/affipay-node\r\n- Issues: https://github.com/eabdalmufid/affipay-node/issues\r\n\r\n## License\r\n\r\n[MIT](LICENSE)\r\n","readmeFilename":"README.md"}