{"_id":"@codepunter-labs/mock-payaza","_rev":"2-c92dca347fbb3415da9199156736c29f","name":"@codepunter-labs/mock-payaza","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@codepunter-labs/mock-payaza","version":"0.1.0","license":"MIT","_id":"@codepunter-labs/mock-payaza@0.1.0","maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"dist":{"shasum":"dc0d1b3e354496743bb2ff86e269f6970b6858e7","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-payaza/-/mock-payaza-0.1.0.tgz","fileCount":9,"integrity":"sha512-B5sbyM13og+z63DkflY2M4gs5C8HGxm1PGeJ4VrQ9GW2zhYfiGPriwGzEXTwzIyzjja72zDWZ+fYpVjbh3asCA==","signatures":[{"sig":"MEUCIQCxf60QsdR0+np2+2bst3K0KZLyPXS5XiwexFJ1lezrEgIgPQWFKjSXjk+bslYaTJs7esymfbfIAYkarXeNTNHCRBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83641},"main":"./dist/index.cjs","type":"module","_from":"file:codepunter-labs-mock-payaza-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"},"_resolved":"/tmp/fb93b5c69f92c7fd1e15c1c9c6f0c187/codepunter-labs-mock-payaza-0.1.0.tgz","_integrity":"sha512-B5sbyM13og+z63DkflY2M4gs5C8HGxm1PGeJ4VrQ9GW2zhYfiGPriwGzEXTwzIyzjja72zDWZ+fYpVjbh3asCA==","repository":{"url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","type":"git","directory":"packages/mock-payaza"},"_npmVersion":"10.8.2","description":"TODO","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@codepunter-labs/mock-core":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"*","vitest":"*","typescript":"*"},"_npmOperationalInternal":{"tmp":"tmp/mock-payaza_0.1.0_1783371655798_0.4750686946724145","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codepunter-labs/mock-payaza","version":"0.2.0","description":"TODO","repository":{"type":"git","url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","directory":"packages/mock-payaza"},"license":"MIT","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@codepunter-labs/mock-core":"0.2.0"},"devDependencies":{"tsup":"*","typescript":"*","vitest":"*"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"_id":"@codepunter-labs/mock-payaza@0.2.0","bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","_integrity":"sha512-+gEGGB5pmJLtHGcuhoAVHWlAgQbw1JZe+7LXQ+uiXHlwCdPnbzqr7QTsvXN6AQapn+txyrWOxL+pRevEEycjjA==","_resolved":"/tmp/3e51d6ae47d5ba7e4cabcd6c5e925f06/codepunter-labs-mock-payaza-0.2.0.tgz","_from":"file:codepunter-labs-mock-payaza-0.2.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+gEGGB5pmJLtHGcuhoAVHWlAgQbw1JZe+7LXQ+uiXHlwCdPnbzqr7QTsvXN6AQapn+txyrWOxL+pRevEEycjjA==","shasum":"03d306608868731ca581fcaeb68afa8347925765","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-payaza/-/mock-payaza-0.2.0.tgz","fileCount":9,"unpackedSize":87018,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYhtPc4Ns2xxRo9oncQxdxSZxMaJd22VrABU57ukhsSAIhAPEkZYigLr3rxQhIOJwmEEnes/6AVa4hUgtqiqiFFDaA"}]},"_npmUser":{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"},"directories":{},"maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mock-payaza_0.2.0_1783446218330_0.8492081775786557"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T21:00:55.551Z","modified":"2026-07-07T17:43:38.588Z","0.1.0":"2026-07-06T21:00:55.962Z","0.2.0":"2026-07-07T17:43:38.465Z"},"bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"license":"MIT","homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","repository":{"type":"git","url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","directory":"packages/mock-payaza"},"description":"TODO","maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"readme":"# @codepunter-labs/mock-payaza\n\nMock SDK for Payaza API. Provides fully-typed mock implementations for testing Payaza integrations without making real API calls.\n\n[![npm version](https://badge.fury.io/js/@codepunter-labs/mock-payaza.svg)](https://www.npmjs.com/package/@codepunter-labs/mock-payaza)\n[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-payaza)\n\n## Installation\n\n```bash\nnpm install @codepunter-labs/mock-payaza\n```\n\n## Features\n\n- **Transfers**: Initiate transfers, query transaction status\n- **Account Enquiry**: Verify account names and bank details\n- **Bank Codes**: Retrieve list of supported banks\n- **Payaza Account**: View account details and balance\n- **Subaccounts**: Create and manage subaccounts\n- **Type-safe**: Full TypeScript support with accurate API types\n- **Test Framework Agnostic**: Works with Jest, Vitest, and other spy-based frameworks\n\n## Repository\n\n- **GitHub**: https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-payaza\n- **Source Code**: [src/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-payaza/src)\n- **Tests**: [tests/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-payaza/tests)\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { vi } from 'vitest';\nimport { createMockPayaza } from '@codepunter-labs/mock-payaza';\n\nconst payaza = createMockPayaza({ spy: vi.fn });\n```\n\n### Using with Jest\n\n```typescript\nimport { createMockPayaza } from '@codepunter-labs/mock-payaza';\n\nconst payaza = createMockPayaza({ spy: jest.fn });\n```\n\n### Example: Transfer\n\n```typescript\n// Default behavior - returns realistic mock data\nconst result = await payaza.initiateTransfer({\n  transaction_type: 'nuban',\n  service_payload: {\n    payout_amount: 100,\n    transaction_pin: 419374,\n    account_reference: '1010000009',\n    currency: 'NGN',\n    country: 'NGA',\n    payout_beneficiaries: [\n      {\n        credit_amount: 100,\n        account_number: '9207067319',\n        account_name: 'John Doe',\n        bank_code: '000013',\n        narration: 'Test',\n        transaction_reference: 'TD93001234',\n        sender: {\n          sender_name: 'Jane Doe',\n          sender_id: '',\n          sender_phone_number: '01234595',\n          sender_address: '123, Ace Street'\n        }\n      }\n    ]\n  }\n});\n```\n\n### Example: Override Mock Response\n\n```typescript\nimport { makeTransferResponse } from '@codepunter-labs/mock-payaza';\n\npayaza.initiateTransfer.mockResolvedValue({\n  response_code: 200,\n  response_message: 'Request successfully submitted',\n  response_content: makeTransferResponse({ amount: 5000 })\n});\n```\n\n### Example: Account Enquiry\n\n```typescript\nconst result = await payaza.accountNameEnquiry({\n  account_number: '9207067319',\n  bank_code: '000013',\n  currency: 'NGN'\n});\n```\n\n### Example: Error Simulation\n\n```typescript\nimport { PayazaErrors } from '@codepunter-labs/mock-payaza';\n\npayaza.initiateTransfer.mockRejectedValue(\n  PayazaErrors.insufficientBalance()\n);\n```\n\n## API Reference\n\n### MockPayaza\n\n| Method | Description | Source |\n|--------|-------------|--------|\n| `initiateTransfer(request)` | Initiate a transfer | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `queryTransactionStatus(transactionReference)` | Query transaction status | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `accountNameEnquiry(request)` | Verify account name | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `getBankCodes(currencyCode)` | Get list of banks | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `getPayazaAccountDetails()` | Get account details | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `createSubaccount(request)` | Create subaccount | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n| `getSubaccountDetails(payazaSubAccountReference)` | Get subaccount details | [mock-payaza.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/mock-payaza.ts) |\n\n### Fixture Factories\n\n| Factory | Description | Source |\n|---------|-------------|--------|\n| `makeTransferResponse(options?)` | Create transfer response | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeBulkTransferResponse(options?)` | Create bulk transfer response | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeTransactionData(options?)` | Create transaction data | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeAccountEnquiryResponse(options?)` | Create account enquiry response | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeBank(options?)` | Create bank object | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makePayazaAccountDetails(options?)` | Create account details | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeSubaccount(options?)` | Create subaccount | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makeSender(options?)` | Create sender object | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n| `makePayoutBeneficiary(options?)` | Create payout beneficiary | [fixtures.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/fixtures.ts) |\n\n### Error Factories\n\n| Error | Description | Source |\n|-------|-------------|--------|\n| `PayazaErrors.unauthorized()` | Unauthorized error | [errors.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/errors.ts) |\n| `PayazaErrors.invalidAccountNumber()` | Invalid account number error | [errors.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/errors.ts) |\n| `PayazaErrors.insufficientBalance()` | Insufficient balance error | [errors.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/errors.ts) |\n| `PayazaErrors.transferFailed()` | Transfer failed error | [errors.ts](https://github.com/DERRICK-TORKORNOO/mock-sdks/blob/main/packages/mock-payaza/src/errors.ts) |\n\n## Testing Patterns\n\n### Test Success Path\n\n```typescript\ntest('should initiate transfer successfully', async () => {\n  const payaza = createMockPayaza({ spy: vi.fn });\n  \n  const result = await payaza.initiateTransfer(request);\n  \n  expect(result.response_code).toBe(200);\n  expect(result.response_message).toBe('Request successfully submitted');\n});\n```\n\n### Test Error Handling\n\n```typescript\ntest('should handle insufficient balance error', async () => {\n  const payaza = createMockPayaza({ spy: vi.fn });\n  \n  payaza.initiateTransfer.mockRejectedValue(\n    PayazaErrors.insufficientBalance()\n  );\n  \n  await expect(payaza.initiateTransfer(request)).rejects.toMatchObject({ response_code: 400 });\n});\n```\n\n### Test with Custom Data\n\n```typescript\ntest('should use custom transfer amount', async () => {\n  const payaza = createMockPayaza({ spy: vi.fn });\n  \n  payaza.initiateTransfer.mockResolvedValue({\n    response_code: 200,\n    response_message: 'Request successfully submitted',\n    response_content: makeTransferResponse({ amount: 10000 })\n  });\n  \n  const result = await payaza.initiateTransfer(request);\n  expect(result.response_content.amount).toBe(10000);\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}