{"_id":"@acountpay/ais-sdk","_rev":"7-a4ea6445bebbef6a4979edd7f61b69f0","name":"@acountpay/ais-sdk","dist-tags":{"latest":"2.0.2"},"versions":{"1.0.0":{"name":"@acountpay/ais-sdk","version":"1.0.0","author":{"name":"Bhushan","email":"bhushan.dangore@hotmail.com"},"license":"MIT","_id":"@acountpay/ais-sdk@1.0.0","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"2f42c173e507ae373f8011d3b35fc11c055fc9cd","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-1.0.0.tgz","fileCount":24,"integrity":"sha512-znn98f7vKc3fCjBzWS5ibKLU8eQfL3hLdInm3rOaEdNaYZ/bZIV5HUa/0Mljq1R4EQt9DPjAIKlrxqIqoXQKMg==","signatures":[{"sig":"MEUCIA7rbHSI5fVbGf2rtERjIeFbziUFeLjvn78jkUQF37i8AiEA4LCh9bpbpMStRUDgVDmMEyHUSmKoWrG37CrUtGLEZyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277052},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"2004e9f2c74b291956a3a175fd31120df472450c","scripts":{"build":"rollup -c"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.1.0","description":"��# AcountPay SDK\r \r A TypeScript SDK for AcountPay payment processing and account linking services.\r \r ## Features\r \r - **Paymen","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_1.0.0_1759400643090_0.2944998207236247","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@acountpay/ais-sdk","version":"1.0.1","author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","_id":"@acountpay/ais-sdk@1.0.1","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"dcee5bd59f0b26fd3d375e370d022a5d9cf601f7","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-1.0.1.tgz","fileCount":24,"integrity":"sha512-5ViSJ2Dmw76tpIgLXD7nW1mo/j/dThjrYOQbzlokFj71KAE1NrPQ3zBdg5gRJEz0cDPBw/wBLFw49nYmHHi1nQ==","signatures":[{"sig":"MEUCIFVOjmx4DovDK+p2t+yqprKND9z8uoUBzeViF5b/0q7fAiEA3VY6JzQMsUL6WmKBXdOTgfxjrDunpv5kuc6o50BDa3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273449},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"2004e9f2c74b291956a3a175fd31120df472450c","scripts":{"build":"rollup -c"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.1.0","description":"AcountPay SDK","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_1.0.1_1759400802554_0.03732914136861365","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@acountpay/ais-sdk","version":"1.0.2","author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","_id":"@acountpay/ais-sdk@1.0.2","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"3abcba3489e28629aa3e1c520b4f2f6772a82b17","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-1.0.2.tgz","fileCount":24,"integrity":"sha512-qROeAQL6tI7X1ffa+TTK4PeZzujCBooi3teYIodO/i7pbYVwpuJ90eHhrrsZZh/PCS3uxHSVm7RkIVkBk/NfBA==","signatures":[{"sig":"MEUCIQD06QUtl2wr627gZPhv2BXI8mR/K01WFQS0By0622mWOgIgJk3GvreSrgl/pYwxYk5PCNvywBxH5IKsGdVAfPmY9SU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273453},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"5d73d6f9f3ba88d186ade74f5f22fddae3a15400","scripts":{"build":"rollup -c"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.1.0","description":"AcountPay SDK","directories":{},"_nodeVersion":"22.11.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_1.0.2_1759403614068_0.06529913402537924","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@acountpay/ais-sdk","version":"1.1.1","author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","_id":"@acountpay/ais-sdk@1.1.1","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"fad86aa05ef723722e5116051d5cafd36e5af4d1","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-1.1.1.tgz","fileCount":10,"integrity":"sha512-VtO4ysAJoD2XbDsTdGoHqRBPWtWBqECv90WS3wfntR2DyiBnB1OxZb5+1ZlRoGZ3x4AQG/OYQE6au69cx8DpQg==","signatures":[{"sig":"MEYCIQDqR6oCV8s5SIjn9B3ymXVfhInLNeqt7WGqPrmv8qcUcQIhAMBHmRvr9cV03lA90DesXpKfbQdkmRVm4g2PEKbRbbVP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287635},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"bbeb156a99463615ef5dcb189336b3676b219497","scripts":{"test":"node test-node.js","build":"rollup -c","test:browser":"echo 'Open test.html in a browser or serve it with: python3 -m http.server 8000'"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.6.2","description":"AcountPay SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_1.1.1_1777912253359_0.18153511204673167","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@acountpay/ais-sdk","version":"2.0.0","author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","_id":"@acountpay/ais-sdk@2.0.0","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"8448210aa18191ea917ef5b6d88c55c5e75c8b0c","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-2.0.0.tgz","fileCount":10,"integrity":"sha512-0TUIt1j8FkESB3IZBzckmPxLuaDfKUBPPUdbJF3XgBaohE/OOwBUQwSg7YU8I1hqpIZnOvhVthDF44mhiKwu0A==","signatures":[{"sig":"MEQCIG+Izn1usS0pK+g24A14GP4ICVlZcOfqCoAaSADzaWafAiA38FyWLS+lQn/vyPogj2iRVIEnieWcefjRuzm94OM6kw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204814},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"b63730d3d3c32e711947904cf947f514848d0bd3","scripts":{"test":"node test-node.js","build":"rollup -c","test:browser":"echo 'Open test.html in a browser or serve it with: python3 -m http.server 8000'"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.6.2","description":"AcountPay SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_2.0.0_1777914600681_0.8074555081242587","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@acountpay/ais-sdk","version":"2.0.1","author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","_id":"@acountpay/ais-sdk@2.0.1","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"dist":{"shasum":"a45c940640ae99d1358ec68fc34472282b1f2ece","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-2.0.1.tgz","fileCount":10,"integrity":"sha512-g+FfzxRBx2WxBvQ+DYx5fl7eDnoYeABymuaeKf8Xhp7TJcNpwKkLUUaW2tVbakuiqGCso7a64uN8DvkDprKKdQ==","signatures":[{"sig":"MEUCICmeaMOD3ahN4KN59vAUyrXdtD7UOZpEJDQ+0zNmBK4GAiEA6UAhggUpSW+uhV89b3TKUSB4oMMkG4G1QMohdQIt9IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204814},"main":"dist/acount.cjs.js","types":"dist/index.d.ts","module":"dist/acount.esm.js","gitHead":"1596e07d1f4231a3279c7a618199227b1f715c2d","scripts":{"test":"node test-node.js","build":"rollup -c","test:browser":"echo 'Open test.html in a browser or serve it with: python3 -m http.server 8000'"},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"_npmVersion":"11.6.2","description":"AcountPay SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3","@types/node":"^22.10.2","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-typescript":"^12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ais-sdk_2.0.1_1777915300834_0.22106184441418986","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@acountpay/ais-sdk","version":"2.0.2","main":"dist/acount.cjs.js","module":"dist/acount.esm.js","types":"dist/index.d.ts","license":"MIT","author":{"name":"AcountPay","email":"support@acountpay.com"},"publishConfig":{"access":"public"},"scripts":{"build":"rollup -c","test":"node test-node.js","test:browser":"echo 'Open test.html in a browser or serve it with: python3 -m http.server 8000'"},"devDependencies":{"@rollup/plugin-replace":"^6.0.2","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-typescript":"^12.1.1","@types/node":"^22.10.2","dotenv":"^16.4.7","rollup":"^4.24.3","typescript":"^5.6.3"},"dependencies":{"tslib":"^2.8.1"},"gitHead":"ec00c9ce747763f13464aec8d3d5c627e26d0fa0","_id":"@acountpay/ais-sdk@2.0.2","description":"AcountPay SDK","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-mjC68wPpM40lW+1jPqNLLJz+r9MfC6WVE10E/foLYQsJ48grM7HZ3s/Fgi1v5+sFYJQj/dM4E1BG0a2RMK8oDw==","shasum":"3008787fffbc7794910c7a24387d00bd248b3134","tarball":"https://registry.npmjs.org/@acountpay/ais-sdk/-/ais-sdk-2.0.2.tgz","fileCount":10,"unpackedSize":215017,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBsc1KTCtAYgG2QNM3YNQveMVCge6ur3Bu3s+JZiSNCOAiEArpegcC/47CzF9sxnMfb3+2STHo8MQ8vvuUCTYP6oTms="}]},"_npmUser":{"name":"paywithacount","email":"info@withacount.com"},"directories":{},"maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ais-sdk_2.0.2_1777917311007_0.8250099054024664"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-02T10:24:03.020Z","modified":"2026-05-04T17:55:11.334Z","1.0.0":"2025-10-02T10:24:03.302Z","1.0.1":"2025-10-02T10:26:42.763Z","1.0.2":"2025-10-02T11:13:34.256Z","1.1.1":"2026-05-04T16:30:53.504Z","2.0.0":"2026-05-04T17:10:00.877Z","2.0.1":"2026-05-04T17:21:40.975Z","2.0.2":"2026-05-04T17:55:11.165Z"},"author":{"name":"AcountPay","email":"support@acountpay.com"},"license":"MIT","description":"AcountPay SDK","maintainers":[{"name":"paywithacount","email":"info@withacount.com"},{"name":"bhushandangore","email":"bhushan@steinnlabs.com"}],"readme":"﻿AcountPay SDK\n\nTypeScript SDK for **AIS** (bank account linking, balances when available, transactions) and optional hosted payments. Enriched account helpers are available for display and server-backed audit flows; **regulatory PDF documents are not generated from this package.**\n\n## Core: account information (typical app)\n\n1. **Configure** the API host and your **client id** (from the AcountPay dashboard). You can set `API_BASE_URL` and `ACOUNTPAY_CLIENT_ID` in a `.env` file (see `.env.example`) and use `Account.fromEnv()` in Node, or pass `new Account({ clientId, apiBaseUrl })` in the browser.\n2. **Consent:** `linkAccount` with `ACCOUNT_PERMISSIONS` (user completes bank flow / MitID as required).\n3. **List accounts:** `getLinkedAccounts` (balances are included when the bank returns them for that call).\n4. **Balance (when missing on list):** `getAccountBalance` — calls Token.io’s balance endpoint with consent (same pattern as the dashboard/JWT `POST /v1/ais/accounts/balance`).\n5. **Transactions:** `getTransactions` for a chosen `accountId` and date range.\n\n```typescript\nimport Account, { ACCOUNT_PERMISSIONS } from '@acountpay/ais-sdk';\n\nconst account = new Account({\n  clientId: process.env.ACOUNTPAY_CLIENT_ID!,\n  apiBaseUrl: process.env.API_BASE_URL, // optional; normalizes to include /v1\n});\n\n// or: const account = Account.fromEnv();\n\nconst link = await account.linkAccount({\n  userId: 'user_…',\n  permissions: [\n    ACCOUNT_PERMISSIONS.READ_ACCOUNTS_DETAIL,\n    ACCOUNT_PERMISSIONS.READ_BALANCES,\n    ACCOUNT_PERMISSIONS.READ_TRANSACTIONS_DETAIL,\n  ],\n});\n// Redirect to link.authorizationUrl / linkUrl when present\n\nconst { accounts } = await account.getLinkedAccounts({ userId: 'user_…' });\n// If accounts[0].balance is undefined, many banks only expose balance on a dedicated call:\nconst bal = await account.getAccountBalance({\n  userId: 'user_…',\n  accountId: accounts[0].accountId,\n});\nconst { transactions } = await account.getTransactions({\n  userId: 'user_…',\n  accountId: accounts[0].accountId,\n  fromDate: '2025-01-01',\n  toDate: '2025-01-31',\n});\n```\n\n## Who needs what\n\n| Goal | Use these SDK methods |\n|------|------------------------|\n| **Your own app** (balances, tx history, account picker) | `linkAccount`, then `getLinkedAccounts`, optionally `getAccountBalance`, then `getTransactions` (and your backend or JWT APIs if you use them). |\n| **Enriched account data for UI or backend audit** | `getAccountInformationForCompliance`, `storeAccountInformationRequest` (no client-side PDF). |\n\n**Server-side security:** This SDK no longer calls the compliance PDF HTTP endpoint. Your API may still expose `POST /sdk/generate-compliance-pdf`; restrict it to internal or trusted services so merchants cannot create sensitive documents with public credentials alone.\n\nThe **`npm test`** script (`test-node.js`) runs **link, accounts, balance (if backend supports it), transactions**. Optional verbose SDK logs:\n\n```bash\nACOUNT_SDK_DEBUG=1 node test-node.js\n```\n\n**SDK logging:** by default the package does not emit verbose logs. Set `ACOUNT_SDK_DEBUG=1` in Node or `window.ACOUNT_SDK_DEBUG = true` in the browser to print URLs and payloads (useful when integrating).\n\n## Installation\n\n```bash\nnpm install @acountpay/ais-sdk\n```\n\n## Local demo (browser)\n\nAfter `npm run build`, from this directory run `python3 -m http.server 8080` and open [http://localhost:8080/index.html](http://localhost:8080/index.html) for a step-by-step **Link, Accounts, Transactions** UI. For optional enriched account and store-audit steps, use `test.html` instead.\n\n## Payments (optional)\n\n### Initialize the SDK\n\nSame constructor as above. `clientId` is your SDK client id from the dashboard.\n\n### Process Payments\n\n```typescript\n// Initiate a payment\nawait account.initiatePayment({\n  amount: 100.00,\n  referenceNumber: 'REF-12345'\n});\n// User gets redirected to Token.io payment page\n```\n\n## API Reference\n\n### Account Class\n\n#### Constructor\n```typescript\nnew Account({ clientId: string; apiBaseUrl?: string })\n```\n\n#### `Account.fromEnv(overrides?)` (Node)\n```typescript\nAccount.fromEnv({ clientId?: string; apiBaseUrl?: string })\n```\nUses `ACOUNTPAY_CLIENT_ID` and optional `API_BASE_URL` from `process.env` unless overridden.\n\n#### Methods\n\n##### `initiatePayment(options)`\nInitiates a payment and redirects user to Token.io hosted payment page.\n\n**Parameters:**\n- `amount: number` - Payment amount\n- `referenceNumber: string` - Unique reference number\n\n**Returns:** `Promise<void>`\n\n##### `linkAccount(options)`\nLinks a customer's bank account for accessing financial data.\n\n**Parameters:**\n- `userId: string` - Customer's user ID\n- `permissions: string[]` - Array of permission strings (`ACCOUNT_PERMISSIONS`)\n- `merchantId` (optional) - Legacy; URLs use the SDK `clientId` from the constructor\n\n**Returns:** `Promise<AccountLinkingResponse>`\n\n### Types\n\n#### `AccountLinkingResponse`\n```typescript\ninterface AccountLinkingResponse {\n  success: boolean;\n  linkUrl?: string;\n  message?: string;\n}\n```\n\n#### `AccountLinkingOptions`\n```typescript\ninterface AccountLinkingOptions {\n  merchantId: string;\n  userId: string;\n  permissions: string[];\n  authorizationToken: string;\n}\n```\n\n### Constants\n\n#### `ACCOUNT_PERMISSIONS`\nPredefined permission constants:\n\n- `ACCOUNT_PERMISSIONS.READ_ACCOUNTS_DETAIL` - \"ReadAccountsDetail\"\n- `ACCOUNT_PERMISSIONS.READ_BALANCES` - \"ReadBalances\"\n- `ACCOUNT_PERMISSIONS.READ_TRANSACTIONS_DETAIL` - \"ReadTransactionsDetail\"\n\n### Merchant onboarding helpers (no PDF in SDK)\n\n#### `getAccountInformationForCompliance(options)`\nReturns enriched account data (holder, IBAN, resolved bank name) for UI or to send to your own backend. This SDK does not download or render regulatory PDFs.\n\n**Parameters:**\n- `merchantId: string` - Your merchant ID\n- `userId: string` - Customer's user ID\n- `accountId?: string` - Optional specific account ID\n\n**Returns:** `Promise<{ success: boolean; accountInfo?: AccountInformationRequest; accounts?: AccountInformationRequest[]; message?: string }>`\n\n**Example:**\n```typescript\nconst result = await account.getAccountInformationForCompliance({\n  merchantId: 'merchant_abc123',\n  userId: 'user_2def456ghi789',\n});\n\nif (result.success && result.accountInfo) {\n  console.log('Account Holder:', result.accountInfo.accountHolderName);\n  console.log('Account Number:', result.accountInfo.accountNumber);\n  console.log('Bank Name:', result.accountInfo.bankName);\n}\n```\n\n#### `storeAccountInformationRequest(accountInfo)`\nStores account information request data via your configured backend endpoint.\n\n**Parameters:**\n- `accountInfo: AccountInformationRequest` - Account information to store\n\n**Returns:** `Promise<StoreAccountInfoResponse>`\n\n## Environment Configuration\n\nThe SDK reads configuration from:\n\n- `ACOUNTPAY_CLIENT_ID`: merchant SDK client id (**Node**: use with `Account.fromEnv()` or pass into `new Account({ clientId })`).\n- `API_BASE_URL`: API host (optional; trailing slashes stripped, `/v1` added once). Browser: set `window.API_BASE_URL` if not using a bundler env.\n- `TOKEN_ENVIRONMENT`: `\"sandbox\"` or `\"production\"` where applicable.\n\nCopy `.env.example` to `.env` for local scripts and tests.\n\n```env\nACOUNTPAY_CLIENT_ID=your-client-id\nAPI_BASE_URL=https://api.acountpay.com\nTOKEN_ENVIRONMENT=sandbox\n```\n\n## Backend Integration\n\nYour backend needs to provide these endpoints:\n\n### Payment Creation\n```\nPOST {API_URL}/sdk/payment/{clientId}?amount={amount}&referenceNumber={referenceNumber}\nResponse: { paymentId: string }\n```\n\n### Link Token Generation\n```\nPOST {API_URL}/sdk/link-token/{clientId}?paymentId={paymentId}\nResponse: { tokenRequestUrl: string }\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}