{"_id":"@akata/vindi-node-sdk","_rev":"1-66468ab0bd2a51a1980f4b516176fba8","name":"@akata/vindi-node-sdk","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.5":{"name":"@akata/vindi-node-sdk","version":"1.0.5","description":"Node.js SDK for vindi payment gateway","author":{"name":"Claudinei Machado","email":"claudinei@kolinalabs.com"},"main":"index.js","keywords":["vindi","vindi-node","vindi-node-sdk","vindi-api"],"license":"Apache-2.0","scripts":{},"dependencies":{"request":"^2.88.0"},"repository":{"type":"git","url":"git+https://github.com/leonardokatayama/vindi-node-sdk.git"},"gitHead":"c0c800a9efd700863c7ff15639b42b8d0cbb41fb","bugs":{"url":"https://github.com/leonardokatayama/vindi-node-sdk/issues"},"homepage":"https://github.com/leonardokatayama/vindi-node-sdk#readme","_id":"@akata/vindi-node-sdk@1.0.5","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-fIY53qZDz+CakNCSi0jc03nHRXzLYIl2RyKql5tv8F79ztTa9iet5fm9dTL75Xjo/huqWJKBmZ2fP7wRniScxA==","shasum":"5dcf7c6b09efea8eba57bb66de2bb635b3c74cfd","tarball":"https://registry.npmjs.org/@akata/vindi-node-sdk/-/vindi-node-sdk-1.0.5.tgz","fileCount":32,"unpackedSize":294907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8QvoCRA9TVsSAnZWagAA+CwP/0zGwUZTdiqB6fjJgx/J\npbR7jfETR/8m3EzQINBKtIBqkAHDksuX63JtmOFZ/UQ06iUcMaVHboEZPQaE\nxeAShv+IOeZyGSZ8IpVX56+CpmnZjgU8K4TfjIpmt5ZXdOvVil2b4mvHJaNm\nuiEkkeNqW3qHNnqWqTNCROBlckf4PnqK1bWAwbnbUJW5nKf5fqiHLfdKw/Mf\nOejMvVflqAMolhfnjJe6aEiwClM3l2Bt0x7IUO6EyUodWPqlkvGv03zMKZTM\npZ4d84sPmbqXAOWoztdOg0M5vUjtbKcN6dxOASLkmMykltIrdeMgGqc8qb4+\nErpviAA4UnIhzCjkNSRhGI3h7nZMfEpWuYWdHYbs6JlGeEdZNk+2CnKtnpjR\nNg3Iq7q9no3cwzH/see04JdE/TBgrV63P2FJbcP+STObjzUM5C6MHSwxjWZc\nIXqkCrXNCae4lorCGDQsYokoAN6cgA/WA29Vmw6HQ/ZEvrUOWZeBZWJqA3Vc\nO/lptH01zvCCSot+LTchHww3FEn+Y/It/KM62UGK176eOGR2S1RyaJzGNur8\n2kz46P+fgPxpvSL38MaO+69VGeLOyUi9qcszuYva9RO2OGmXrU7qOciJ4LNn\nFZt6FTi5XTo2kOp+b//OZ5+nL2uC0DSen9KoLD/j9MUx+yl9daYQATPizKnE\nNarD\r\n=TUQt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzT3Ow8yMRu4L0RHze9igtn/0Blo4jWmEq4mahUd3vLAiEA5gVcgLkGM1CWypCoLMMWrQCW7tjR04Qzg1Lj0kPwiT0="}]},"maintainers":[{"name":"leonardokatayama","email":"leonardo@akata.com.br"}],"_npmUser":{"name":"leonardokatayama","email":"leonardo@akata.com.br"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vindi-node-sdk_1.0.5_1592855527961_0.7585288882209302"},"_hasShrinkwrap":false}},"time":{"created":"2020-06-22T19:52:07.713Z","1.0.5":"2020-06-22T19:52:08.088Z","modified":"2022-04-04T12:28:45.560Z"},"maintainers":[{"name":"leonardokatayama","email":"leonardo@akata.com.br"}],"description":"Node.js SDK for vindi payment gateway","homepage":"https://github.com/leonardokatayama/vindi-node-sdk#readme","keywords":["vindi","vindi-node","vindi-node-sdk","vindi-api"],"repository":{"type":"git","url":"git+https://github.com/leonardokatayama/vindi-node-sdk.git"},"author":{"name":"Claudinei Machado","email":"claudinei@kolinalabs.com"},"bugs":{"url":"https://github.com/leonardokatayama/vindi-node-sdk/issues"},"license":"Apache-2.0","readme":"# Vindi Node.js SDK\n\n[API Docs](https://vindi.github.io/api-docs/dist)\n\n## Instalação\n\n```\nnpm install vindi-node-sdk\n\n```\n\n## Configuração\n\nPara iniciar a utilização do sdk, é necessário configurar a variável de ambiente abaixo:\n\n#### API KEY\n\n```\nprocess.env.VINDI_API_KEY = 'YOUR_VINDI_API_KEY'\n\n```\n#### API URI\n\nPor padrão, a URI base da api na versão atual (v1) já está configurada internamente ``` https://app.vindi.com.br/api/v1 ```.\n\nPara alterar configure a seguinte variável de ambiente:\n\n```\nprocess.env.VINDI_API_URI = 'YOUR_VINDI_API_URI'\n\n```\n\nOs exemplos de configuração acima são apenas sugestão, você pode utilizar qualquer outro processo para configuração das variáveis, desde que os mesmos sejam disponibilizados para o ambiente.\n\n## Utilização\n\n```\n\nVindi.customer.all().then(data => {\n    console.log(JSON.stringify(data))\n}).catch(error => {\n    console.log(error)\n})\n\n// output:\n\n{\n   \"items\":[\n      {\n         \"id\":ID,\n         \"name\":\"NAME\",\n         \"email\":\"EMAIL\",\n         \"registry_code\":\"REGISTRY_CODE\",\n         \"code\":\"CODE\",\n         \"notes\":\"NOTES\",\n         \"status\":\"active\",\n         \"created_at\":\"2018-05-07T15:48:14.000-03:00\",\n         \"updated_at\":\"2018-05-07T16:35:35.000-03:00\",\n         \"metadata\":{\n         },\n         \"address\":{\n            \"street\":\"STREET\",\n            \"number\":\"NUMBER\",\n            \"additional_details\":\"ADDITIONAL_DETAIL\",\n            \"zipcode\":\"ZIPCODE\",\n            \"neighborhood\":\"NEIGHBORHOOD\",\n            \"city\":\"CITY\",\n            \"state\":\"BA\",\n            \"country\":\"BR\"\n         },\n         \"phones\":[\n         ]\n      },\n      ...\n   ],\n   \"links\":{\n      \"first\":null,\n      \"last\":null,\n      \"prev\":null,\n      \"next\":null\n   },\n   \"perPage\":\"25\",\n   \"total\":\"200\",\n   \"rates\":{\n      \"limit\":\"120\",\n      \"remaining\":\"119\",\n      \"reset\":\"1536760995\"\n   }\n}\n\n```\n## Filtros, Paginação e Ordenação\n\nOs parâmetros aceitos para filtros e paginação, bem como as exigências sobre os formatos e codificação são descritos [aqui](https://atendimento.vindi.com.br/hc/pt-br/articles/204163150)\n\nEste SDK foi desenvolvido de modo a atender o padrão atual da API Vindi. \n\n### Paginação e Ordenação\n\nCada recurso da API, possui atributos para busca/ordenação distintos, estes podem ser consultados na [documentação](https://vindi.github.io/api-docs/dist) de consultas GET dos mesmos.\n\nA utilização de propriedades inválidas neste processo, fará com que a requisição retorne um erro (verifique o ``` .catch ``` abaixo).\n\n```\nconst params = {\n    per_page: 1,\n    sort_by: 'name'\n}\n\nVindi.plan.all(params).then(data => {\n    console.log(JSON.stringify(data))\n}).catch(error => {\n    console.log(error)\n})\n\n```\n\nEm caso de sucesso, o SDK formatará as respostas de modo que a saída siga sempre o padrão estrutural exibido na seção [Utilização](#utilização).\n\n### Filtros\n\nPara utilização do filtros da API Vindi, é necessário compreender as seguintes regras:\n\n1. Os parâmetros de filtragem devem ser inseridos na chave ``` query ``` da querystring (URL).\n2. Os parâmetros devem ser codificados de acordo com o padrão [URL Encoded](https://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_por_cento)\n3. Deve-se utilizar a simbologia de consulta aceita e descrita na documentação.\n\nO SDK disponibiliza um recurso próprio para formatação e codificação dos parâmetros de filtragem.\n\n```\nconst f = Vindi.filter\n\nf.where('name:Mensal')\n\nconst params = {\n    sort_by: 'name',\n    query: f.get()\n}\n\nVindi.plan.all(params).then(data => {\n    console.log(JSON.stringify(data))\n}).catch(error => {\n    console.log(error)\n})\n\n```\n\nEsta funcionalidade permite que você adicione vários argumentos sequencialmente no método ``` where ```. Estes serão entendidos por padrão como ``` AND ```\n\n```\nf.where(\n    'name:Mensal',\n    'interval_count>=2'\n)\n\n// Utilize este método para obter a consulta explícita.\nconsole.log(f.get())\n\nconst params = {\n    sort_by: 'name',\n    query: f.get()\n}\n\n```\n\nCaso necessite utilizar mais parâmetros de forma estratégica, utilize os métodos avançados, disponíveis no filtro.\n\n```\nf.where(\n    f.and(\n        f.or('name:Mensal', f.gte('interval_count', 2)),\n        f.or('status=active', 'billing_trigger_day=2')\n    )\n)\n```\n\nNegação\n\n```\nf.where(\n    f.not('status=inactive')\n)\n```\n\n#### ATENÇÃO\nO SDK NÃO está configurado de modo a prevenir o uso sequencial incorreto dos métodos de filtragem, deste modo é recomendável sempre depurar ``` console.log(f.get()) ``` a string de busca resultante para garantir que os resultados obtidos são realmente os desejados.\n\n### Métodos disponíveis no filtro:\n\n```\nf.eq(x, y)      // x=y\nf.like(x, y)    // x:y\nf.not(x)        // -x\nf.lt(x, y)      // x<y\nf.lte(x, y)     // x<=y\nf.gt(x, y)      // x>y\nf.gte(x, y)     // x>=y\nf.and(...args)  // arg1 AND arg2 AND arg3 ....\nf.and(...args)  // arg1 OR arg2 OR arg3 ....\nf.get()         // x=1 AND y=2\n```\n\n## Status dos recursos\n\n[x] Disponível | [ ] Indisponível\n\n|   Recurso\t                            |   Status\t|\n|---\t                                |---\t    |\n|   Vindi.bill.all(params)\t            |   [x]\t    |\n|   Vindi.bill.create(data)             |   [x]\t    |\n|   Vindi.bill.retrieve(id)             |   [x]\t    |\n|   Vindi.bill.update(id, data)         |   [x]\t    |\n|   Vindi.bill.delete(id)               |   [x]\t    |\n|   Vindi.bill.approve(id)              |   [x]\t    |\n|   Vindi.bill.change(id)               |   [x]\t    |\n|   Vindi.bill.invoice(id)              |   [x]\t    |\n|---                                    |---        |\n|   Vindi.billItem.retrieve(id)         |   [x]\t    |\n|---                                    |---        |\n|   Vindi.charge.all(params)\t        |   [x]\t    |\n|   Vindi.charge.retrieve(id)\t        |   [x]\t    |\n|   Vindi.charge.update(id, data)\t    |   [x]\t    |\n|   Vindi.charge.delete(id)\t            |   [x]\t    |\n|   Vindi.charge.charge(id)\t            |   [x]\t    |\n|   Vindi.charge.fraudReview(id)\t    |   [x]\t    |\n|   Vindi.charge.refund(id)\t            |   [x]\t    |\n|   Vindi.charge.reissue(id)\t        |   [x]\t    |\n|---                                    |---        |\n|   Vindi.customer.all(params)\t        |   [x]\t    |\n|   Vindi.customer.create(data)\t        |   [x]\t    |\n|   Vindi.customer.retrieve(id)\t        |   [x]\t    |\n|   Vindi.customer.update(id, data)\t    |   [x]\t    |\n|   Vindi.customer.delete(ud)   \t    |   [x]\t    |\n|   Vindi.customer.unarchive(id)\t    |   [x]\t    |\n|---                                    |---        |\n|   Vindi.discount.create()\t            |   [x]\t    |\n|   Vindi.discount.retrieve(id)\t        |   [x]\t    |\n|   Vindi.discount.delete(id)\t        |   [x]\t    |\n|---                                    |---        |\n|   Vindi.importBatch.all(params)\t    |   [ ]\t    |\n|   Vindi.importBatch.upload(data)\t    |   [ ]\t    |\n|   Vindi.importBatch.retrieve(id)\t    |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.invoice.all(params)\t        |   [x]\t    |\n|   Vindi.invoice.create(data)\t        |   [x]\t    |\n|   Vindi.invoice.retrieve(id)\t        |   [x]\t    |\n|   Vindi.invoice.update(id)\t        |   [x]\t    |\n|   Vindi.invoice.delete(id)\t        |   [x]\t    |\n|   Vindi.invoice.retry(id)\t            |   [x]\t    |\n|---                                    |---        |\n|   Vindi.issue.all(params)\t            |   [x]\t    |\n|   Vindi.issue.retrieve(id)\t        |   [x]\t    |\n|   Vindi.issue.update(id)\t            |   [x]\t    |\n|---                                    |---        |\n|   Vindi.merchant.all(params)\t        |   [x]\t    |\n|   Vindi.merchant.current()\t        |   [x]\t    |\n|   Vindi.merchant.retrieve(id)\t        |   [x]\t    |\n|---                                    |---        |\n|   Vindi.merchantUser.all(params)\t    |   [ ]\t    |\n|   Vindi.merchantUser.create(data)\t    |   [ ]\t    |\n|   Vindi.merchantUser.retrieve(id)\t    |   [ ]\t    |\n|   Vindi.merchantUser.update(id, data) |   [ ]\t    |\n|   Vindi.merchantUser.delete(id)\t    |   [ ]\t    |\n|   Vindi.merchantUser.reactivate(id)   |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.message.all(params)\t        |   [x]\t    |\n|   Vindi.message.retrieve(id)\t        |   [x]\t    |\n|   Vindi.message.send(data)            |   [x]\t    |\n|---                                    |---        |\n|   Vindi.movements.create(data)        |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.notification.all(params)\t            |   [x]\t    |\n|   Vindi.notification.create(data)\t            |   [x]\t    |\n|   Vindi.notification.retrieve(id)\t            |   [x]\t    |\n|   Vindi.notification.update(id, data)         |   [x]\t    |\n|   Vindi.notification.delete(id)               |   [x]\t    |\n|   Vindi.notification.getItems(id)             |   [x]\t    |\n|   Vindi.notification.addItem(id, data)        |   [x]\t    |\n|   Vindi.notification.removeItem(id, itemId)   |   [x]\t    |\n|---                                            |---        |\n|   Vindi.paymentMethod.all(params)\t    |   [x]\t    |\n|   Vindi.paymentMethod.retrieve(id)    |   [x]\t    |\n|---                                    |---        |\n|   Vindi.paymentProfile.all(params)    |   [x]\t    |\n|   Vindi.paymentProfile.create(data)   |   [x]\t    |\n|   Vindi.paymentProfile.retrieve(id)   |   [x]\t    |\n|   Vindi.paymentProfile.delete(id)     |   [x]\t    |\n|   Vindi.paymentProfile.verify(id)     |   [x]\t    |\n|---                                    |---        |\n|   Vindi.period.all(params)            |   [x]\t    |\n|   Vindi.period.retrieve(id)           |   [x]\t    |\n|   Vindi.period.update(id, data)       |   [x]\t    |\n|   Vindi.period.bill(id)               |   [x]\t    |\n|---                                    |---        |\n|   Vindi.plan.all(params)              |   [x]\t    |\n|   Vindi.plan.create(data)             |   [x]\t    |\n|   Vindi.plan.retrieve(id)             |   [x]\t    |\n|   Vindi.plan.update(id, data)         |   [x]\t    |\n|---                                    |---        |\n|   Vindi.product.all(params)           |   [x]\t    |\n|   Vindi.product.create(data)          |   [x]\t    |\n|   Vindi.product.retrieve(id)          |   [x]\t    |\n|   Vindi.product.update(id, data)      |   [x]\t    |\n|---                                    |---        |\n|   Vindi.productItem.create(data)      |   [x]\t    |\n|   Vindi.productItem.retrieve(id)      |   [x]\t    |\n|   Vindi.productItem.update(id, data)  |   [x]\t    |\n|   Vindi.productItem.delete(id)        |   [x]\t    |\n|---                                    |---        |\n|   Vindi.public.profilePayment(data)   |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.roles.all(params)             |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.subscription.all(params)      |   [x]\t    |\n|   Vindi.subscription.create(data)     |   [x]\t    |\n|   Vindi.subscription.retrieve(id)     |   [x]\t    |\n|   Vindi.subscription.update(id, data) |   [x]\t    |\n|   Vindi.subscription.delete(id)       |   [x]\t    |\n|   Vindi.subscription.renew(id)        |   [x]\t    |\n|   Vindi.subscription.reactivate(id)   |   [x]\t    |\n|---                                    |---        |\n|   Vindi.transaction.all(params)       |   [x]\t    |\n|   Vindi.transaction.create(data)      |   [x]\t    |\n|   Vindi.transaction.retrieve(id)      |   [x]\t    |\n|   Vindi.transaction.update(id, data)  |   [x]\t    |\n|---                                    |---        |\n|   Vindi.usage.create(data)            |   [ ]\t    |\n|   Vindi.usage.delete(id)              |   [ ]\t    |\n|---                                    |---        |\n|   Vindi.user.current()                |   [x]\t    |\n|---                                    |---        |\n","readmeFilename":"README.md"}