{"_id":"@clive-alliance/partner-sdk","_rev":"7-49084f81b68d0df4ed506741d853669f","name":"@clive-alliance/partner-sdk","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.1":{"name":"@clive-alliance/partner-sdk","version":"0.1.1","keywords":["clive","payments","partner","sdk","stripe"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.1","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"e783cf034d6e34326d3f8e46ef9e4972507c9962","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.1.tgz","fileCount":4,"integrity":"sha512-F8QJjMqlgglawbgllnuOfbvfRpG+GhqCNcJIf7ZgB4uk2gyBgm4A9B74E9FUTOU1nnS925AIe2Q3DXOQ+Ol75g==","signatures":[{"sig":"MEQCIALdGk5PDLpeuWdRYEBpdQ4NGBte5cglv3Hs5Au+xoZBAiAX9YzbS4ql6WzAB4Z2sir90NSfCgo4Fo7Gev9q+/3qgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9155},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a694500a090253563bb3d17ff3a5526322403b99","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK for transaction initialization and intent attachment.","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.1_1772814957763_0.13419219232087398","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@clive-alliance/partner-sdk","version":"0.1.2","keywords":["clive","payments","partner","sdk","stripe"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.2","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"aaf8235b6b599772033d044638d8172ec9f3ec60","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.2.tgz","fileCount":4,"integrity":"sha512-tFzqXPtbgBzxq3+ofDkyO2WWNJ3ZEpNEIiBxZMKZTTNRMNU6rvQfasv1xUK/ulPH6ii6OVuYbqzhKk2C4DsFhA==","signatures":[{"sig":"MEQCIHiToI1jRPqYT0ToI4anrH4+5bSDb7bvYZ6Z/2k+UABHAiBK27TBIVenKXOW5hHE+yKzpzfgx4RQkuflQOs2IJzBnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10413},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5406cd2e3fd15008eca44f08574f7e3c10014ab7","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK for transaction initialization and intent attachment.","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.2_1772926344030_0.9111924621228693","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@clive-alliance/partner-sdk","version":"0.1.3","keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.3","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"151613dc6e3e6d45c96a20cf0480e27ac4b9d7f9","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.3.tgz","fileCount":11,"integrity":"sha512-eAp+7QdPwCPcFBVh4o5JY+nlNBJLR5ZHc+JH/R9q4SMfz676CvCrfKEYACQZlg9jTJJ+hYykK7Zvh8gBQUc3ww==","signatures":[{"sig":"MEUCIGzkBPRgOE1GuNRRk5ax1lhWOQf7ygXyQV4U7QR4sn86AiEAkpF+7xZ4OUClHtRkONtUmhvL+5GxujpgpACWrj+Fhmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":798873},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"30157815f25b7c509939878fa8bc08434533456d","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@revolut/checkout":"^1.1.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.3_1775565576987_0.5398522377153776","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@clive-alliance/partner-sdk","version":"0.1.4","keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.4","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"28efcfaa800bb30733bfa979e076da9da2702846","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.4.tgz","fileCount":13,"integrity":"sha512-6eGZYftuJa9tfDYbpaESTFYNZy3K2Lk9GW7y5J3zxFBQbFp5KU7fdbby97p7URKApBR+9cGYt5CgW92kJ9gOTA==","signatures":[{"sig":"MEUCIBi6wfovEV1B7RVKNBjg1xPfNV66OAnKKjbuRvjUX8NfAiEAhPLg8c24woSQ1YJMt/E0e2apRqAHAjfJ+ERMzQYmypI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":801973},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"4d438e71022398c8f1c3114066d502f0e1b5e4c7","scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@revolut/checkout":"^1.1.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.4_1775741880833_0.2696119930324581","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@clive-alliance/partner-sdk","version":"0.1.5","keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.5","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"450ce83619a8ceeb63f91afe3c467a9654b72a00","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.5.tgz","fileCount":13,"integrity":"sha512-Z8tgIn+4sBMGFuoVZ7ngqntdjmoRlRnYIG3gSyje7vJv/KstruNAfKbkqq2cqlXUaKkuvDPXU0w8NqKYgszWRg==","signatures":[{"sig":"MEUCIFC/S8Vz2LcI8nFEmNy3m6ZhxYEealhFXdOw1cfZYScBAiEA+oMgwv9lKHdCEohw7YhVsHZHjs2DqRu3LK5/JWxGgFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802219},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"4d438e71022398c8f1c3114066d502f0e1b5e4c7","scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-assets.mjs","prepack":"npm run build","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@revolut/checkout":"^1.1.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.5_1775743116609_0.11712663458862105","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@clive-alliance/partner-sdk","version":"0.1.7","keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"license":"MIT","_id":"@clive-alliance/partner-sdk@0.1.7","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"dist":{"shasum":"9c0a10400a20bd0be744de2e5c39c796d7c409a4","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.7.tgz","fileCount":13,"integrity":"sha512-ZmiefJHh+sFEULwb1NlaLMXYFk5/ifJO3iis9a+24Xwp9fCvSgBzmcNFFxTYNqxCXpy/dkvVQ1NjsDiWFV5xBg==","signatures":[{"sig":"MEYCIQCWuKCNX7LaA3Wfi3p9yMgwVam09neI8zE1ihb1wk1VrAIhAJhx7XZvkZnve05531ezDyo5aYrqIDPlxlGRVzLTYHun","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802946},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"8e646b7ee6cf9be6da339e7b1dde81bbe9a485fa","scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-assets.mjs","prepack":"npm run build","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"_npmVersion":"10.8.2","description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@revolut/checkout":"^1.1.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/partner-sdk_0.1.7_1775744561070_0.5510227384251112","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@clive-alliance/partner-sdk","version":"0.1.9","description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-assets.mjs","typecheck":"tsc --noEmit -p tsconfig.json","prepack":"npm run build"},"keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"license":"MIT","engines":{"node":">=20.0.0"},"dependencies":{"@revolut/checkout":"^1.1.25"},"_id":"@clive-alliance/partner-sdk@0.1.9","gitHead":"8e646b7ee6cf9be6da339e7b1dde81bbe9a485fa","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XGOtkJCaKnJVNsPR/jKA6tpw+NtleWxkul971yaP4HzyL7V5pNwLQ7GQYxoX+MCEXsdg2njWg/YAaqzUA/93vQ==","shasum":"693c6fbad8eb49e8e455d0dcdf3ee503480cf6a9","tarball":"https://registry.npmjs.org/@clive-alliance/partner-sdk/-/partner-sdk-0.1.9.tgz","fileCount":13,"unpackedSize":803091,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGx4TmVsAuAUgD5vcNBicwuOwHPizC6MY3An9YukkdLpAiEAoPqD3a0VQgbVT4sJXL6OpXkKmtUs9YJm4J2MeEljlCg="}]},"_npmUser":{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"},"directories":{},"maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/partner-sdk_0.1.9_1775744999376_0.589684079022021"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-06T16:35:57.623Z","modified":"2026-04-09T14:29:59.808Z","0.1.1":"2026-03-06T16:35:57.907Z","0.1.2":"2026-03-07T23:32:24.169Z","0.1.3":"2026-04-07T12:39:37.204Z","0.1.4":"2026-04-09T13:38:01.152Z","0.1.5":"2026-04-09T13:58:36.809Z","0.1.7":"2026-04-09T14:22:41.276Z","0.1.9":"2026-04-09T14:29:59.565Z"},"license":"MIT","keywords":["clive","payments","partner","sdk","stripe","widget","checkout"],"description":"Official Clive Payments partner SDK with signed server APIs and browser checkout widget components.","maintainers":[{"name":"nnamdi-clive","email":"nnamdi@clivealliance.com"}],"readme":"# @clive-alliance/partner-sdk\n\nOfficial Clive Payments partner SDK for:\n\n- Server-side signed API calls (Node.js/TypeScript)\n- Browser checkout widget (Clive Pay Components v2)\n\n## Server SDK features\n\nUse this SDK to handle request signing, auth headers, and idempotency for:\n\n- `POST /transactions/initialize`\n- `POST /transactions/attach-intent`\n- `POST /transactions/checkout-intent`\n- `POST /transactions/checkout-intent-v2`\n\nIf you prefer calling APIs directly, you can still use helpers like `createSignedRequestHeaders`.\n\n## Install\n\n```bash\nnpm install @clive-alliance/partner-sdk\n```\n\n## Quick start\n\n```ts\nimport { CliveClient } from \"@clive-alliance/partner-sdk\";\n\nconst clive = new CliveClient({\n  baseUrl: \"https://api.clivepayments.com/api/v1\",\n  apiKey: process.env.CLIVE_API_KEY!,\n  hmacSecret: process.env.CLIVE_HMAC_SECRET!\n});\n\nconst initialized = await clive.initializeTransaction({\n  partner_id: \"ECHEZONA001\",\n  client_id: \"AIRPEACE001\",\n  // Major currency units (e.g. 75.0 dollars), not Stripe minor units (cents).\n  amount: 75.0,\n  currency: \"USD\",\n  echezona_reference: \"EZ12345\"\n});\n\n// Partner creates Stripe PaymentIntent and then attaches it.\nconst attached = await clive.attachPaymentIntent({\n  clive_tx_id: initialized.clive_tx_id,\n  stripe_payment_intent_id: \"pi_3Qxx...\"\n});\n\nconst routed = await clive.createCheckoutIntentV2({\n  partner_id: \"ECHEZONA001\",\n  client_id: \"AIRPEACE001\",\n  amount: 75,\n  currency: \"GBP\",\n  email: \"buyer@example.com\",\n  echezona_reference: \"EZ12346\",\n  payment_type: \"card\",\n  issuer_country: \"GB\"\n});\n```\n\n## Useful helpers\n\n- `CliveClient.createIdempotencyKey(prefix, reference)`\n- `CliveClient.createRandomIdempotencyKey(prefix)`\n- `CliveClient.signPayload(rawBody, hmacSecret)`\n- `createSignedRequestHeaders(rawBody, apiKey, hmacSecret, idempotencyKey)`\n\n## Error handling\n\nSDK requests throw `CliveApiError` on non-2xx responses:\n\n- `status` - HTTP status code\n- `code` - Clive domain error code (if returned)\n- `details` - extra validation/domain context\n\n## Clive Pay Components (Widget v2, advanced option)\n\nKeep your current direct Stripe Elements flow if you prefer.  \nIf you want a richer hosted-like experience, use `createClivePaymentsWidget`.\n\nWidget v2 includes:\n\n1. Payment-method selection UI\n2. Searchable billing-country selection\n3. `checkout-intent-v2` initialization\n4. Built-in processor renderers:\n   - Stripe (`card`)\n   - Revolut card field (`card` routed to revolut)\n   - Revolut Pay (`revolut_pay`)\n   - Revolut Open Banking / Pay By Bank (`open_banking`)\n5. Built-in terminal outcome views (success/failure), plus external callbacks for host apps\n\n### Browser usage\n\n```ts\nimport { createClivePaymentsWidget } from \"@clive-alliance/partner-sdk\";\n\nconst widget = createClivePaymentsWidget({\n  mount: \"#clive-pay-container\",\n  partnerId: \"ECHEZONA001\",\n  clientId: \"AIRPEACE001\",\n  brandingBaseUrl: \"https://api.clivepayments.com/api/v1\",\n  amount: 75,\n  currency: \"GBP\",\n  email: \"buyer@merchant.com\",\n  echezonaReference: \"EZ12347\",\n  initializeTransaction: async (payload) => {\n    // IMPORTANT: call your backend adapter endpoint here.\n    // Do not expose Clive API key + HMAC secret in browser code.\n    const response = await fetch(\"/api/clive/checkout-intent-v2\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify(payload)\n    });\n    if (!response.ok) throw new Error(\"Failed to initialize checkout\");\n    return await response.json();\n  },\n  onSuccess: ({ payload, response, result }) => {\n    // Notify your host app / analytics / order finalization flow.\n    console.log(\"Payment succeeded\", { payload, response, result });\n  },\n  onError: (error) => {\n    // Notify your host app outside the widget.\n    console.error(\"Payment failed\", error);\n  },\n  onStateChange: (state) => {\n    // Optional external state tracking.\n    console.log(\"Widget state:\", state);\n  }\n});\n\n// Optional cleanup\n// widget.destroy();\n```\n\n### Integration boundary (very important)\n\nUse this split exactly:\n\n- **Widget -> Clive (direct):**\n  - `GET /branding/packet` only (public branding payload)\n- **Widget -> Partner backend -> Clive:**\n  - `POST /transactions/checkout-intent-v2` (signed/authenticated server call)\n\nThe widget is intentionally designed to call **your backend** for transaction initialization through `initializeTransaction`.\n\n```text\nCustomer Browser (Widget)\n  -> POST /api/clive/checkout-intent-v2 (your backend)\n      -> POST /api/v1/transactions/checkout-intent-v2 (Clive, signed with x-clive-hmac)\n          <- processor checkout artifact (Stripe client_secret / Revolut order token)\n      <- return artifact JSON\n  -> widget mounts processor UI component\n```\n\n### What must stay server-side\n\nNever expose these in browser code:\n\n- `CLIVE_API_KEY`\n- `CLIVE_HMAC_SECRET`\n- processor secret credentials (Stripe/Revolut/etc)\n- request signing logic for Clive ingestion endpoints\n\n### Optional custom processor overrides\n\nIf you need fully custom processor rendering, you can still override defaults using `renderers`.\n\n```ts\ncreateClivePaymentsWidget({\n  // ...base options\n  renderers: {\n    revolut: async ({ root, response }) => {\n      root.innerHTML = `<p>Custom Revolut UI. Tx: ${response.clive_tx_id}</p>`;\n    }\n  }\n});\n```\n\n### Security model\n\n- Keep `apiKey` and `hmacSecret` on the server only.\n- Have browser widget call your backend adapter route.\n- Backend adapter should call `CliveClient.createCheckoutIntentV2(...)`.\n- Widget can fetch `/branding/packet?client_id=...&partner_id=...` automatically when `brandingBaseUrl` is provided.\n","readmeFilename":"README.md"}