{"_id":"@diegomax/pagos360","_rev":"4-33e04103c22c379e86e58ef2d5e52e25","name":"@diegomax/pagos360","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@diegomax/pagos360","version":"0.1.0","keywords":["pagos360","payments","gateway","typescript","argentina"],"license":"UNLICENSED","_id":"@diegomax/pagos360@0.1.0","maintainers":[{"name":"diego.massanti","email":"diego@massanti.com"}],"dist":{"shasum":"16f3d793cea7cc2959e3748fc76ed3ab0bc81666","tarball":"https://registry.npmjs.org/@diegomax/pagos360/-/pagos360-0.1.0.tgz","fileCount":38,"integrity":"sha512-jjtrXtiqaY9hLZ7Ao4aHvLnvnJoNjJtDQMqbXGxW5x39AtrSKEtfZqQCkfG8vY5QAoqkD7fj5Awz8QcRTx9tBQ==","signatures":[{"sig":"MEQCIFhfXXK7ka9k/WbKgFEd38xQEcaX1dou4AW9g/y3FCPeAiAVupeNsEBC+n++5+HlI6fii+YSeFxk6SLibfd2H7jI5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40425},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"59c377aec8fda146fa36b36ceb97f93125e9e24c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.check.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"diego.massanti","email":"diego@massanti.com"},"_npmVersion":"11.8.0","description":"TypeScript client for the Pagos360 API.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagos360_0.1.0_1779211246871_0.7582409851494294","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@diegomax/pagos360","version":"0.1.1","keywords":["pagos360","payments","gateway","typescript","argentina"],"author":{"name":"Diego Massanti","email":"diego@massanti.com"},"license":"MIT","_id":"@diegomax/pagos360@0.1.1","maintainers":[{"name":"diego.massanti","email":"diego@massanti.com"}],"homepage":"https://github.com/DiegoMax/pagos360-ts#readme","bugs":{"url":"https://github.com/DiegoMax/pagos360-ts/issues"},"dist":{"shasum":"fb7ea077a857c70d5441315696cf0b9f69043c33","tarball":"https://registry.npmjs.org/@diegomax/pagos360/-/pagos360-0.1.1.tgz","fileCount":39,"integrity":"sha512-pl3U+TYiXCj1poKoLLFCTN1pMDcJVIXJQ2zUdIZfLO3hybo8uvgCvyQbMa1g39Gc0ay+se0ghQ+PLYm8Q6NZmw==","signatures":[{"sig":"MEYCIQD7oToUs1ZzuEUhBtier0HomiQiA8nUuMcWqE9aNt2OGwIhANf3M6iulZ118mZAhPQy/tRKecn1DXW+85e+/WM0nMZA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41785},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0f1d7be2182ed4d84df8c82f3f1bfaee104a6067","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.check.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"diego.massanti","email":"diego@massanti.com"},"repository":{"url":"git+https://github.com/DiegoMax/pagos360-ts.git","type":"git"},"_npmVersion":"11.8.0","description":"TypeScript client for the Pagos360 API.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagos360_0.1.1_1779211452240_0.973430733439304","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@diegomax/pagos360","version":"0.2.0","keywords":["pagos360","payments","gateway","typescript","argentina"],"author":{"name":"Diego Massanti","email":"diego@massanti.com"},"license":"MIT","_id":"@diegomax/pagos360@0.2.0","maintainers":[{"name":"diego.massanti","email":"diego@massanti.com"}],"homepage":"https://github.com/DiegoMax/pagos360-ts#readme","bugs":{"url":"https://github.com/DiegoMax/pagos360-ts/issues"},"dist":{"shasum":"1bd66c61191375e63756800c96f46f92a72624f9","tarball":"https://registry.npmjs.org/@diegomax/pagos360/-/pagos360-0.2.0.tgz","fileCount":39,"integrity":"sha512-2VActeCb41E2sJp4SaAaKBN9OlRzWP33xthnHRCr6eydzrVM7thS6d9lMqU9MPFUXJKae3IaTeq6GFs/ghtjTA==","signatures":[{"sig":"MEUCIQCXtDvohsYISZh2jBflTf0Woqh0fRYqKRm7k8QyZj0EUwIgK8hBRWiXhdH2nck0Wx415owlw6ogAkoBhVuxRf/GCdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44263},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d72ac6d88a282e6a218ccb7fb21b4aac089a5663","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.check.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"diego.massanti","email":"diego@massanti.com"},"repository":{"url":"git+https://github.com/DiegoMax/pagos360-ts.git","type":"git"},"_npmVersion":"11.9.0","description":"TypeScript client for the Pagos360 API.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.28"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.9.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/pagos360_0.2.0_1781301797930_0.7719920620555674","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@diegomax/pagos360","version":"0.2.1","description":"TypeScript client for the Pagos360 API.","type":"module","author":{"name":"Diego Massanti","email":"diego@massanti.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DiegoMax/pagos360-ts.git"},"bugs":{"url":"https://github.com/DiegoMax/pagos360-ts/issues"},"homepage":"https://github.com/DiegoMax/pagos360-ts#readme","engines":{"node":">=22"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.check.json --noEmit","test":"vitest run","test:watch":"vitest"},"keywords":["pagos360","payments","gateway","typescript","argentina"],"dependencies":{"zod":"^3.25.28"},"devDependencies":{"@types/node":"^24.6.0","typescript":"^5.9.3","vitest":"^3.2.4"},"gitHead":"44a1a327d305c5fae48e4bbf2f00386736203b31","_id":"@diegomax/pagos360@0.2.1","_nodeVersion":"22.22.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-QQIRjXuvhfynPbsMBYxHOZDJkeaoZtuoTuEfocZ7m4sX1WPaJNExkJvT0YgVssU7JTegnmv5ZfZWrLNkgWE4Aw==","shasum":"3985334f08f8e658ef6d27b5078fc131adc30fd6","tarball":"https://registry.npmjs.org/@diegomax/pagos360/-/pagos360-0.2.1.tgz","fileCount":39,"unpackedSize":46409,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFI23Qa4g/jDesEO9Y0llM3RYPT8pyrUdyePBVN5dQGOAiEAsWzOZc6gyfNrIia/ZqfhmGO5MWsYFSE8gdOLnJsum2Y="}]},"_npmUser":{"name":"diego.massanti","email":"diego@massanti.com"},"directories":{},"maintainers":[{"name":"diego.massanti","email":"diego@massanti.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pagos360_0.2.1_1781302473259_0.22518542047958356"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T17:20:46.682Z","modified":"2026-06-12T22:14:33.507Z","0.1.0":"2026-05-19T17:20:47.024Z","0.1.1":"2026-05-19T17:24:12.427Z","0.2.0":"2026-06-12T22:03:18.122Z","0.2.1":"2026-06-12T22:14:33.401Z"},"bugs":{"url":"https://github.com/DiegoMax/pagos360-ts/issues"},"author":{"name":"Diego Massanti","email":"diego@massanti.com"},"license":"MIT","homepage":"https://github.com/DiegoMax/pagos360-ts#readme","keywords":["pagos360","payments","gateway","typescript","argentina"],"repository":{"type":"git","url":"git+https://github.com/DiegoMax/pagos360-ts.git"},"description":"TypeScript client for the Pagos360 API.","maintainers":[{"name":"diego.massanti","email":"diego@massanti.com"}],"readme":"# @diegomax/pagos360\n\nCliente TypeScript para la API de [Pagos360](https://developers.pagos360.com/). Pensado para Node.js 22+.\n\n## Instalación\n\n```sh\nnpm install @diegomax/pagos360\n```\n\n## Uso\n\n```ts\nimport { createPagos360Client } from '@diegomax/pagos360';\n\nconst client = createPagos360Client({\n\tenvironment: 'sandbox', // 'sandbox' | 'production'\n\tapiKey: process.env.PAGOS360_API_KEY!,\n\ttimeoutMs: 25_000\n});\n\nconst payment = await client.createPaymentRequest({\n\tpayerName: 'Diego Massanti',\n\tdescription: 'Pago facturas 123, 124',\n\tfirstTotal: 1234.56,\n\tfirstDueDate: new Date(Date.now() + 30 * 60_000),\n\texternalReference: 'OP-REF-1',\n\tbackUrlSuccess: 'https://miapp/api/pago/callback/pagos360?flow=ok&ref=OP-REF-1',\n\tbackUrlPending: 'https://miapp/api/pago/callback/pagos360?flow=pending&ref=OP-REF-1',\n\tbackUrlRejected: 'https://miapp/api/pago/callback/pagos360?flow=rejected&ref=OP-REF-1'\n});\n\n// payment.checkoutUrl → URL para redirigir al usuario.\n\nconst status = await client.getPaymentRequest(payment.id);\n// status.state: 'pending' | 'paid' | 'rejected' | 'expired' | 'reverted' | 'refunded' | ...\n```\n\n## API\n\n### `createPagos360Client(config)`\n\nOpciones:\n\n| Campo         | Tipo                            | Default                                                            |\n| ------------- | ------------------------------- | ------------------------------------------------------------------ |\n| `environment` | `'sandbox' \\| 'production'`     | requerido                                                          |\n| `apiKey`      | `string`                        | requerido (`Authorization: Bearer <apiKey>`)                       |\n| `apiBaseUrl`  | `string`                        | `https://api.sandbox.pagos360.com` / `https://api.pagos360.com`    |\n| `fetch`       | `typeof fetch`                  | `globalThis.fetch`                                                 |\n| `timeoutMs`   | `number`                        | `25000`                                                            |\n\n### `client.createPaymentRequest(input)`\n\n`POST /payment-request`. Envía `{ payment_request: { payer_name, description, first_total, first_due_date, external_reference?, back_url_success?, back_url_pending?, back_url_rejected?, payer_email?, metadata?, excluded_channels? } }`. La fecha se serializa a `DD-MM-YYYY` (formato esperado por Pagos360).\n\n#### Restringir medios de pago (`excludedChannels`)\n\nEl checkout de Pagos360 muestra todos los canales habilitados en la cuenta. Para restringirlo, `excludedChannels` excluye los canales indicados (se envía como `excluded_channels`). Las constantes `PAGOS360_CHANNELS` cubren los canales conocidos:\n\n```ts\nimport { PAGOS360_CHANNELS } from '@diegomax/pagos360';\n\n// Ejemplo: dejar solo el pago con QR.\nconst payment = await client.createPaymentRequest({\n\t// ...campos habituales...\n\tpayerName: 'Diego Massanti',\n\tdescription: 'Pago factura 123',\n\tfirstTotal: 1234.56,\n\tfirstDueDate: new Date(Date.now() + 30 * 60_000),\n\texcludedChannels: [\n\t\tPAGOS360_CHANNELS.creditCard,\n\t\tPAGOS360_CHANNELS.debitCard,\n\t\tPAGOS360_CHANNELS.nonBanking,\n\t\tPAGOS360_CHANNELS.banelcoPmc,\n\t\tPAGOS360_CHANNELS.linkPagos,\n\t\tPAGOS360_CHANNELS.debin,\n\t\tPAGOS360_CHANNELS.wireTransfer\n\t]\n});\n```\n\n| Constante                       | Valor enviado     | Canal                          |\n| ------------------------------- | ----------------- | ------------------------------ |\n| `PAGOS360_CHANNELS.creditCard`  | `credit_card`     | Tarjeta de crédito             |\n| `PAGOS360_CHANNELS.debitCard`   | `debit_card`      | Tarjeta de débito              |\n| `PAGOS360_CHANNELS.nonBanking`  | `non_banking`     | Efectivo (Rapipago/Pago Fácil) |\n| `PAGOS360_CHANNELS.banelcoPmc`  | `banelco_pmc`     | Pagos Mis Cuentas (Banelco)    |\n| `PAGOS360_CHANNELS.linkPagos`   | `link_pagos`      | Link Pagos                     |\n| `PAGOS360_CHANNELS.debin`       | `DEBIN`           | DEBIN                          |\n| `PAGOS360_CHANNELS.wireTransfer`| `wire_transfer`   | Transferencia                  |\n| `PAGOS360_CHANNELS.qr`          | `qr`              | Código QR                      |\n\n> Nota: la [documentación oficial](https://ayuda.pagos360.com/desarrolladores/API-crear-solicitud-de-pago) lista como excluibles `credit_card`, `debit_card`, `banelco_pmc`, `link_pagos`, `DEBIN`, `wire_transfer` y `non_banking`. `qr` no figura en esa lista, pero la API acepta strings de canales nuevos (el tipo `Pagos360Channel` admite cualquier `string`).\n\n### `client.getPaymentRequest(id)`\n\n`GET /payment-request/{id}`. Devuelve el estado actual y los URLs/datos asociados.\n\n## Errores\n\nTodas las fallas heredan de `Pagos360Error`:\n\n- `Pagos360ValidationError` — input rechazado por zod o pre-condiciones del cliente.\n- `Pagos360HttpError` — la API respondió con un status no-2xx.\n- `Pagos360ResponseValidationError` — la respuesta no coincide con el schema documentado.\n- `Pagos360RequestError` — fallo de red / timeout / abort.\n\n## Desarrollo\n\n```sh\nnpm install\nnpm run typecheck\nnpm test\nnpm run build\n```\n","readmeFilename":"README.md"}