Giter VIP home page Giter VIP logo

node-v3's Introduction

Flutterwave v3 NodeJS Library

Node.js Package npm npm NPM

Introduction

The Node library provides easy access to Flutterwave for Business (F4B) v3 APIs for your Node apps. It abstracts the complexity involved in direct integration and allows you to make quick calls to the APIs. Available features include:

  • Collections: Card, Account, Mobile money, Bank Transfers, USSD, Apple Pay, Google Pay, Fawry Pay, eNaira.
  • Payouts and Beneficiaries.
  • Recurring payments: Tokenization and Subscriptions.
  • Split payments
  • Card issuing
  • Transactions dispute management: Refunds and Chargebacks.
  • Transaction reporting: Collections, Payouts, Settlements, Refunds, Chargebacks and Transaction timeline.
  • Bill payments: Airtime, Data bundle, Cable, Power, Toll, E-bills, and Remitta.
  • Identity verification: Resolve bank account, resolve BVN information and generate OTP.

Table of Content

  1. Requirements
  2. Installation
  3. Initialization
  4. Usage
  5. Testing
  6. Debugging Errors
  7. Support
  8. Contribution guidelines
  9. License
  10. Changelog

Requirements

  1. Flutterwave for business (F4B) API Keys
  2. Node 12 or higher.

Installation

To install the package, run the following command in your Node terminal:

npm install flutterwave-node-v3

Initialization

const Flutterwave = require('flutterwave-node-v3');
const flw = new Flutterwave(process.env.FLW_PUBLIC_KEY, process.env.FLW_SECRET_KEY);

For staging (Test environment), use the TEST API Keys and for production (Live environment), use LIVE API KEYS. You can get your process.env.FLW_PUBLIC_KEY and process.env.FLW_SECRET_KEY from the Flutterwave dashboard. Read the requirement section for more information on how to get your API keys.

Usage

  1. Collections
  2. Tokenization
  3. Subscriptions
  4. Transfers
  5. Virtual Account
  6. Bill payments
  7. Transactions and reporting
  8. Beneficiaries
  9. Banks
  10. Settlements
  11. OTP
  12. Ebills
  13. Misc
  14. Virtual Cards
  15. Collection Subaccounts
  16. Payment-plan

Testing

All of the libraries tests are run on Mocha. Available tests include rave.bank.test, rave.beneficiaries.test, rave.bills.test, rave.charge.test, rave.ebills.test, rave.settlements.test, rave.subscriptions.test. They can be run by running the test command in your terminal.

npm run test or npm test

Debugging Errors

We understand that you may run into some errors while integrating our library. You can read more about our error messages here. For authorization and validation error responses, double-check your API keys and request. If you get a server error, kindly engage the team for support.

Support

For additional assistance using this library, contact the developer experience (DX) team via email or on slack. You can also follow us @FlutterwaveEng and let us know what you think 😊.

Contribution guidelines

Read more about our community contribution guidelines here

License

By contributing to this library, you agree that your contributions will be licensed under its MIT license. Copyright (c) Flutterwave Inc.

node-v3's People

Contributors

alob-mtc avatar angello-droid avatar babatunde13 avatar chitova263 avatar corneliusyaovi avatar dekunledev avatar dependabot[bot] avatar flw-olufemi avatar iamwebwiz avatar iolufemi avatar korneliosyaovi avatar teezzan avatar ugwumadu116 avatar yusuffm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

node-v3's Issues

How to trigger payment.Popup from nodejs

Feature Request

Please a trying to trigger the Rave inline popup from nodejs.
Please is there a way to call it from the current API.


FrontEnd Frameworks

Or is there an Angular, React, Vue, etc framework component on npm for it?
I've tried injecting this into the node-server but there seems to be no export to call the Popup

https://stackblitz.com/edit/payvest-rave-payment-test


This works fine on plain HTML & JS

https://stackblitz.com/edit/payvest-ravepayment-test

Incorrect import for settlements

In the rave.settlements.js file, there's an import from the beneficiaries folder instead of the settlements folder

const retrieve_all = require('../services/beneficiaries/rave.retrieve')
const retrieve = require('../services/beneficiaries/rave.single.retrieve')

Which causes the request to be made to the beneficiaries endpoint instead.

Typescript support

Hello, are there any plans to add type declarations for this package? it's quite frustrating to work without it.

unable to deploy on heroku platform

i recently updated to this new version, i try to push my app to heroku, but flutterwave services/transfer module not found

internal/modules/cjs/loader.js:1083
2020-09-13T22:14:35.364029+00:00 app[web.1]: throw err;
2020-09-13T22:14:35.364030+00:00 app[web.1]: ^
2020-09-13T22:14:35.364030+00:00 app[web.1]:
2020-09-13T22:14:35.364031+00:00 app[web.1]: Error: Cannot find module '../services/transfers/rave.fetch'
2020-09-13T22:14:35.364031+00:00 app[web.1]: Require stack:
2020-09-13T22:14:35.364031+00:00 app[web.1]: - /app/node_modules/flutterwave-node-v3/lib/rave.transfers.js
2020-09-13T22:14:35.364031+00:00 app[web.1]: - /app/node_modules/flutterwave-node-v3/index.js
2020-09-13T22:14:35.364032+00:00 app[web.1]: - /app/app.js
2020-09-13T22:14:35.364032+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)
2020-09-13T22:14:35.364033+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:923:27)
2020-09-13T22:14:35.364033+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:1140:19)
2020-09-13T22:14:35.364034+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:75:18)
2020-09-13T22:14:35.364034+00:00 app[web.1]: at Object. (/app/node_modules/flutterwave-node-v3/lib/rave.transfers.js:5:22)
2020-09-13T22:14:35.364034+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1251:30)
2020-09-13T22:14:35.364035+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
2020-09-13T22:14:35.364035+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:1100:32)
2020-09-13T22:14:35.364035+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:962:14)
2020-09-13T22:14:35.364036+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:1140:19)
2020-09-13T22:14:35.364036+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:75:18)
2020-09-13T22:14:35.364037+00:00 app[web.1]: at Object. (/app/node_modules/flutterwave-node-v3/index.js:18:18)
2020-09-13T22:14:35.364037+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1251:30)
2020-09-13T22:14:35.364038+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
2020-09-13T22:14:35.364038+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:1100:32)
2020-09-13T22:14:35.364039+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:962:14) {
2020-09-13T22:14:35.364054+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2020-09-13T22:14:35.364054+00:00 app[web.1]: requireStack: [
2020-09-13T22:14:35.364054+00:00 app[web.1]: '/app/node_modules/flutterwave-node-v3/lib/rave.transfers.js',
2020-09-13T22:14:35.364055+00:00 app[web.1]: '/app/node_modules/flutterwave-node-v3/index.js',
2020-09-13T22:14:35.364055+00:00 app[web.1]: '/app/app.js'
2020-09-13T22:14:35.364055+00:00 app[web.1]: ]
2020-09-13T22:14:35.364056+00:00 app[web.1]: }

How to cancel recurring payment for a user by making an API call to flutterwave endpoint

How can I stop a user subscription to payment plan by making request to flutterwave endpoint. I tried the following but I'm getting

{
  "message": "Request failed with status code 400",
  "name": "AxiosError",
  "config": {
    "transitional": {
      "silentJSONParsing": true,
      "forcedJSONParsing": true,
      "clarifyTimeoutError": false
    },
    "transformRequest": [
      null
    ],
    "transformResponse": [
      null
    ],
    "timeout": 0,
    "xsrfCookieName": "XSRF-TOKEN",
    "xsrfHeaderName": "X-XSRF-TOKEN",
    "maxContentLength": -1,
    "maxBodyLength": -1,
    "env": {},
    "headers": {
      "Accept": "application/json",
      "Content-Type": "application/json",
      "Authorization": "testkey",
      "User-Agent": "axios/0.27.2",
      "Content-Length": 55
    },
    "url": "https://api.flutterwave.com/v3/subscriptions/XXXX/cancel",
    "method": "put",
    "data": "{\"email\":\"[email protected]\",\"plan_id\":XXXXX}"
  },
  "code": "ERR_BAD_REQUEST",
  "status": 400
}

My code

  //get the email and plan
        const { email } = req.body;
        const plan_id = XXXXX
        const url = `https://api.flutterwave.com/v3/subscriptions/${plan_id}/cancel`;
        //check if the user is subscribed if not subscribed, send error
        const subscriber = await Subscriber.findOne({ where: { email: email } }) as Subscriber;
        if (!subscriber) {
            return res.send({ status: "error", message: "no active subscription found" });
        }

        //if subscribed, cancel the subscription
        const payload = { email, plan_id }
        flutterwaveCancelSubscription(payload)
            .then(response => {
                // TODO:if request is successfully, update user model and send success  
                console.log(response);
                return res.send(response);
                // return res.send({ status: "success", message: "subscription cancelled" });
            }).catch(error => {
                console.log(error);
                return res.send(error);
            })


    }

Mobile money code for Francophone transfer

Hi there,

For creating a mobile transfer, Kenya M-Pesa code is MPS, Ghana Airtime is AIRTEL, etc. However, the suggested FMM code for Francophone mobile money does not seem to work?

Could you confirm what Francophone countries work and what their mobile money code is, please?

Plan Duration is Optional but Enforced by Morx

When creating plans using the javascript client, an error is thrown by Morx when duration is not set:

(node:36522) UnhandledPromiseRejectionWarning: Error: duration is required
    at throwErrorWhen (/home/mugz/projects/node/unto/node_modules/morx/lib/morx.param.extractor.js:61:9)

This functionality contradicts the API documentation which clearly indicates that this parameter is optional.

What is the position. Is duration optional or not?

Tutorial

Hello guys
is there any tutorial on how to implement this in an express app

Can’t Generate Ghana Mobile Money Vodafone cash voucher

How do I generate the voucher for Vodafone cash transactions? I can see that it's a 9 digit number (usually preceded by six '0's when the customer receives a debit alert sms) from the example in the documentation but I haven't the slightest clue how to go about it.

Request module is used in (lib/rave.base.js), but Axios was included as a dependency

internal/modules/cjs/loader.js:969
  throw err;
  ^

Error: Cannot find module 'request'
Require stack:
- /home/kira/Desktop/node-app/flutter-rave/node_modules/flutterwave-node-v3/lib/rave.base.js
- /home/kira/Desktop/node-app/flutter-rave/node_modules/flutterwave-node-v3/index.js
- /home/kira/Desktop/node-app/flutter-rave/app.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
    at Function.Module._load (internal/modules/cjs/loader.js:842:27)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/home/kira/Desktop/node-app/flutter-rave/node_modules/flutterwave-node-v3/lib/rave.base.js:3:15)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Module.require (internal/modules/cjs/loader.js:1026:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/kira/Desktop/node-app/flutter-rave/node_modules/flutterwave-node-v3/lib/rave.base.js',
    '/home/kira/Desktop/node-app/flutter-rave/node_modules/flutterwave-node-v3/index.js',
    '/home/kira/Desktop/node-app/flutter-rave/app.js'
  ]
}

This is the error throw anytime i try to call any of the APIs.
Request was used as the HTTP client in the lib/rave.base.js, but Axios was included as the HTTP client in the package.json

Charge request not working.

I am trying to make a test charge and I'm getting a weird response
This is the code and I basically lifted this from the docs except for a few changes.

const Flutterwave = require("flutterwave-node-v3");
const flw = new Flutterwave(
process.env.FLW_PUBLIC_KEY,
process.env.FLW_SECRET_KEY,
process.env.FLW_ENCRYPTION_KEY
);

exports.cardCharge = async (req, res) => {
// Initiating the transaction
const data = {
card_number: "5531886652142950",
cvv: "564",
expiry_month: "09",
expiry_year: "23",
currency: "NGN",
amount: "100",
redirect_url: "https://www.google.com",
fullname: "Flutterwave Developers",
email: "[email protected]",
phone_number: "09000000000",
enckey: process.env.FLW_ENCRYPTION_KEY,
"tx_ref":"MC-3243e",
pin: "3310",
};

try {
const response = await flw.Charge.card(data);
console.log(response);
} catch (error) {
console.log(error);
}
}

and this is the response I get back.

[AxiosError: Request failed with status code 502] {
code: 'ERR_BAD_RESPONSE',
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: [Function: httpAdapter],
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: { FormData: [Function] },
validateStatus: [Function: validateStatus],
headers: {
Accept: 'application/json, text/plain, /',
'Content-Type': 'application/json',
'User-Agent': 'axios/0.27.2',
'Content-Length': 2
},
method: 'post',
url: 'https://moneywave.herokuapp.com/banks',
data: '{}'
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype] {
abort: [Function (anonymous)],
aborted: [Function (anonymous)],
connect: [Function (anonymous)],
error: [Function (anonymous)],
socket: [Function (anonymous)],
timeout: [Function (anonymous)],
prefinish: [Function: requestOnPrefinish]
},
_eventsCount: 7,
_maxListeners: undefined,
outputData: [],
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
maxRequestsOnConnectionReached: false,
_defaultKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
_closed: false,
socket: TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
secureConnecting: false,
_SNICallback: null,
servername: 'moneywave.herokuapp.com',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'moneywave.herokuapp.com',
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular *1],
[Symbol(res)]: [TLSWrap],
[Symbol(verified)]: true,
[Symbol(pendingSession)]: null,
[Symbol(async_id_symbol)]: 26,
[Symbol(kHandle)]: [TLSWrap],
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kSetNoDelay)]: false,
[Symbol(kSetKeepAlive)]: true,
[Symbol(kSetKeepAliveInitialDelay)]: 60,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object],
[Symbol(RequestTimeout)]: undefined
},
_header: 'POST /banks HTTP/1.1\r\n' +
'Accept: application/json, text/plain, /\r\n' +
'Content-Type: application/json\r\n' +
'User-Agent: axios/0.27.2\r\n' +
'Content-Length: 2\r\n' +
'Host: moneywave.herokuapp.com\r\n' +
'Connection: close\r\n' +
'\r\n',
_keepAliveTimeout: 0,
_onPendingData: [Function: nop],
agent: Agent {
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object: null prototype],
requests: [Object: null prototype] {},
sockets: [Object: null prototype],
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: 'lifo',
maxTotalSockets: Infinity,
totalSocketCount: 1,
maxCachedSessions: 100,
_sessionCache: [Object],
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/banks',
_ended: true,
res: IncomingMessage {
_readableState: [ReadableState],
_events: [Object: null prototype],
_eventsCount: 4,
_maxListeners: undefined,
socket: [TLSSocket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
rawHeaders: [Array],
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 502,
statusMessage: 'Bad Gateway',
client: [TLSSocket],
_consuming: true,
_dumped: false,
req: [Circular *1],
responseUrl: 'https://moneywave.herokuapp.com/banks',
redirects: [],
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: [Object],
[Symbol(kHeadersCount)]: 12,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0,
[Symbol(RequestTimeout)]: undefined
},
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'moneywave.herokuapp.com',
protocol: 'https:',
_redirectable: Writable {
_writableState: [WritableState],
_events: [Object: null prototype],
_eventsCount: 3,
_maxListeners: undefined,
_options: [Object],
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 2,
_requestBodyBuffers: [],
_onNativeResponse: [Function (anonymous)],
_currentRequest: [Circular *1],
_currentUrl: 'https://moneywave.herokuapp.com/banks',
[Symbol(kCapture)]: false
},
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype] {
accept: [Array],
'content-type': [Array],
'user-agent': [Array],
'content-length': [Array],
host: [Array]
}
},
response: {
status: 502,
statusText: 'Bad Gateway',
headers: {
connection: 'close',
server: 'Cowboy',
date: 'Fri, 12 Aug 2022 23:16:46 GMT',
'content-length': '2476',
'content-type': 'text/html; charset=utf-8',
'cache-control': 'no-cache, no-store'
},
config: {
transitional: [Object],
adapter: [Function: httpAdapter],
transformRequest: [Array],
transformResponse: [Array],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
env: [Object],
validateStatus: [Function: validateStatus],
headers: [Object],
method: 'post',
url: 'https://moneywave.herokuapp.com/banks',
data: '{}'
},
request: <ref *1> ClientRequest {
_events: [Object: null prototype],
_eventsCount: 7,
_maxListeners: undefined,
outputData: [],
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
maxRequestsOnConnectionReached: false,
_defaultKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
_closed: false,
socket: [TLSSocket],
_header: 'POST /banks HTTP/1.1\r\n' +
'Accept: application/json, text/plain, /\r\n' +
'Content-Type: application/json\r\n' +
'User-Agent: axios/0.27.2\r\n' +
'Content-Length: 2\r\n' +
'Host: moneywave.herokuapp.com\r\n' +
'Connection: close\r\n' +
'\r\n',
_keepAliveTimeout: 0,
_onPendingData: [Function: nop],
agent: [Agent],
socketPath: undefined,
method: 'POST',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/banks',
_ended: true,
res: [IncomingMessage],
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'moneywave.herokuapp.com',
protocol: 'https:',
_redirectable: [Writable],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
data: '\n' +
' \n' +
' \n' +
' <title>Heroku | Welcome to your new app!</title>\n' +
" <style type='text/css'>\n" +
' body {\n' +
' background-color: white;\n' +
' color: #333333;\n' +
' font-family: Arial, sans-serif;\n' +
' margin: 0;\n' +
' padding: 36px;\n' +
' line-height: 1;\n' +
' font-size: 14px; }\n' +
'\n' +
' .section {\n' +
' margin-bottom: 36px; }\n' +
' .section.friendly {\n' +
' color: #222222; }\n' +
' .section.friendly h1 {\n' +
' font-size: 26px;\n' +
' background-color: #dad8e4;\n' +
' padding: 18px 22px 15px 22px;\n' +
' margin: 0;\n' +
' overflow: hidden; }\n' +
' .section.friendly h1 strong {\n' +
' display: inline-block;\n' +
' float: left; }\n' +
' .section.friendly h1 small {\n' +
' display: inline-block;\n' +
' float: right;\n' +
' text-align: right;\n' +
' font-size: 18px;\n' +
' padding-top: 4px;\n' +
' color: #333333; }\n' +
' .section.friendly .article {\n' +
' border: 4px solid #dad8e4;\n' +
' padding: 24px 18px 18px 18px; }\n' +
' .section.friendly .article h3 {\n' +
' font-size: 20px;\n' +
' margin: 0 0 18px 0; }\n' +
' .section.friendly .article a {\n' +
' color: #6b6ceb; }\n' +
' .section.friendly .article a:visited {\n' +
' color: #1d1d3b; }\n' +
' .section.friendly .article p {\n' +
' font-size: 14px; }\n' +
' .section.friendly .article ul {\n' +
' list-style-type: square; }\n' +
' .section.original {\n' +
' background-color: #eeeeee;\n' +
' color: #444444; }\n' +
' .section.original h2 {\n' +
' background-color: #dddddd;\n' +
' margin: 0;\n' +
' padding: 18px 22px 18px 22px;\n' +
' font-size: 20px; }\n' +
' .section.original pre {\n' +
' margin: 0;\n' +
' padding: 18px 22px 18px 22px;\n' +
' overflow: auto;\n' +
' font-family: monaco, monospaced; }\n' +
' .section.original pre code {\n' +
' display: block;\n' +
' font-size: 11px;\n' +
' width: 100%; }\n' +
' </style>\n' +
' \n' +
' \n' +
"

\n" +
"
\n" +
'

Heroku | Welcome to your new app!

\n' +
"
\n" +
'

Refer to the documentation if you need help deploying.

\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' '
}
}

Charge - Authrorize

I recently started getting the error below every time I try to authorize a payment.

"Cannot destructure property 'daily' of 'checkData(...)' as it is undefined."

The payload I'm sending is:
{ card_number: '5531886652142950', cvv: '564', expiry_month: '09', expiry_year: '32', currency: 'NGN', amount: 2028.4, email: '[email protected]', fullname: 'Akanowo Uko', enckey: 'FLWSECK_TEST4a1163f79c09', tx_ref: 'FWL-65479001-364b-4a99-9e08-dafaeb990238', redirect_url: 'http://localhost:8080/api/v1/payment/verify', authorization: { mode: 'pin', pin: '3310' } }

The full error is
{ status: 'error', message: "Cannot destructure property 'daily' of 'checkData(...)' as it is undefined.", data: null }

Urgent: Transactions GET endpoint or any endpoints with qs doesn't work.

The following files rave.base.js and rave.retrieve.js has a bug in it that prevents get requests with endpoints from working properly. The first file it doesn't form the query and request properly and instead attaches a body instead of qs to a GET request. The second file doesn't accepts all the filters listed in the spec.

PLEASE THIS IS URGENT!

Typo error in Readme

in the bulk transfer sample "account_numberr" was used instead of "account_number"

Verify transaction

Cannot verify or get transaction using reference tx_ref. Only alternative is verifying or getting transaction by id

Support

Does it sdk support expo on react native

Could not find a declaration file for module 'flutterwave-node-v3'

Could not find a declaration file for module 'flutterwave-node-v3'. '.../node_modules/flutterwave-node-v3/index.js' implicitly has an 'any' type.
Try npm install @types/flutterwave-node-v3 if it exists or add a new declaration (.d.ts) file containing declare module 'flutterwave-node-v3';

AUTHORIZATION

How do i redirect user to put in their pin ??
sorry your little documentation is not really clear abeg

get_fee returning 10x transaction fee in response

The function for calculating transaction fees is returning an amount over 10 times higher than what the transaction fee should be. This just started happening. It wasn't so just yesterday.

Here is an example of the fee on a trial amount of GHS 100.94:

data: {
charge_amount: 100.94,
fee: 28.87,
merchant_fee: 0,
flutterwave_fee: 28.87,
stamp_duty_fee: 0,
currency: 'GHS'
}

The fee should originally be GHS 2.53 (using the rate of 2.5%) but is instead showing GHS 28.87. Please fix.

Difficulty in navigating the ReadMe

Nice one here, is it possible we have the items in the documentation summary link to the actual content with the readme
I find myself scrolling back and forth while looking for a piece of information

i can't find virtual card update api

i have problem, i want to update my virtual card on flutterware to be able to know the balance of the card. But what api do I find now :( can you help me find that api?

Initiate Transfer not including beneficiary_name

Hi

this is my payload passed to Transfer.initiate

{ account_bank: 'GH280100', account_number: '0690000022', amount: 20, narration: 'SYSTEM PAYOUT', currency: 'GHS', debit_currency: 'GHS', destination_branch_code: 'GH280101', reference: 'WKG_REF_3bfa6246273afc830047_PMCKDU_1', beneficiary_name: 'Workers GH', callback_url: 'https://e54aef6583ac.ngrok.io/webhook/v1/transfers' }

it returns an error with message

beneficiary_name is required

as you can see am already sending beneficiary_name name from my payload.

Please can you verify this ?
Thank you

Contribution

I would like to know if there is any way for us to contribute to the library even by testing. We are base in Ivory Coast. It will be great if we can work on the implementation of the payments located here.

sms not sent

Setting the medium in Otp to sms generates the otp but does not send it unlike for email or perhaps I am missing something.

const createOtp = async (user)=>{
    try {
        const payload = {
            length: 5,
            customer:{
                name: user.firstName + " " + user.lastName,
                email: user.email,
                phone: "2347097211345"
            },
            sender: "omo iyami",
            send: true,
            medium: ["sms"],
            expiry: 5
        }
        const response = await flw.Otp.create(payload)
        return response;
       
    } catch (error) {
        throw new Error("Something went wrong, try again later.")
    }
};

Unexpected behaviour after import in CRA

After installing via npm and importing it, my application breaks.

Is there no support for webpack > 5?


Compiled with problems:X

ERROR in ./node_modules/asn1/lib/ber/reader.js 2:13-30

Module not found: Error: Can't resolve 'assert' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/asn1/lib/ber'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
	- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "assert": false }


ERROR in ./node_modules/asn1/lib/ber/writer.js 2:13-30

Module not found: Error: Can't resolve 'assert' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/asn1/lib/ber'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
	- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "assert": false }


ERROR in ./node_modules/assert-plus/assert.js 3:13-30

Module not found: Error: Can't resolve 'assert' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/assert-plus'
Did you mean './assert'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (node_modules, /mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
	- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "assert": false }


ERROR in ./node_modules/assert-plus/assert.js 5:13-37

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/assert-plus'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/assert-plus/assert.js 7:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/assert-plus'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/aws-sign2/index.js 20:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/aws-sign2'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/aws-sign2/index.js 21:12-32

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/aws-sign2'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/aws4/aws4.js 2:10-24

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/aws4'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/aws4/aws4.js 3:18-40

Module not found: Error: Can't resolve 'querystring' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/aws4'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "querystring": require.resolve("querystring-es3") }'
	- install 'querystring-es3'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "querystring": false }


ERROR in ./node_modules/aws4/aws4.js 4:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/aws4'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/combined-stream/lib/combined_stream.js 1:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/combined-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/combined-stream/lib/combined_stream.js 3:13-37

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/combined-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/delayed-stream/lib/delayed_stream.js 1:13-37

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/delayed-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/delayed-stream/lib/delayed_stream.js 3:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/delayed-stream/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/ecc-jsbn/index.js 1:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/ecc-jsbn'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/extsprintf/lib/extsprintf.js 4:17-34

Module not found: Error: Can't resolve 'assert' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/extsprintf/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
	- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "assert": false }


ERROR in ./node_modules/extsprintf/lib/extsprintf.js 6:15-30

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/extsprintf/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/flutterwave-node-v3/services/beneficiaries/rave.single.retrieve.js 9:13-28

Module not found: Error: Can't resolve 'path' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/flutterwave-node-v3/services/beneficiaries'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }


ERROR in ./node_modules/flutterwave-node-v3/services/subaccount/rave.fetch.all.js 5:13-28

Module not found: Error: Can't resolve 'path' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/flutterwave-node-v3/services/subaccount'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }


ERROR in ./node_modules/flutterwave-node-v3/services/subaccount/rave.fetch.js 5:13-28

Module not found: Error: Can't resolve 'path' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/flutterwave-node-v3/services/subaccount'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }


ERROR in ./node_modules/forever-agent/index.js 4:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/forever-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/forever-agent/index.js 5:12-33

Module not found: Error: Can't resolve 'http' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/forever-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
	- install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "http": false }


ERROR in ./node_modules/forever-agent/index.js 6:10-24

Module not found: Error: Can't resolve 'net' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/forever-agent'


ERROR in ./node_modules/forever-agent/index.js 7:10-24

Module not found: Error: Can't resolve 'tls' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/forever-agent'


ERROR in ./node_modules/forever-agent/index.js 8:15-37

Module not found: Error: Can't resolve 'https' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/forever-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }'
	- install 'https-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "https": false }


ERROR in ./node_modules/http-signature/lib/parser.js 4:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/http-signature/lib/signer.js 4:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/http-signature/lib/signer.js 6:11-26

Module not found: Error: Can't resolve 'http' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
	- install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "http": false }


ERROR in ./node_modules/http-signature/lib/signer.js 8:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/http-signature/lib/utils.js 6:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/http-signature/lib/verify.js 4:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/http-signature/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/isstream/isstream.js 1:13-30

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/isstream'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/jsprim/lib/jsprim.js 6:15-30

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/jsprim/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/mime-types/index.js 15:14-37

Module not found: Error: Can't resolve 'path' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/mime-types'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }


ERROR in ./node_modules/oauth-sign/index.js 1:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/oauth-sign'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/request/lib/har.js 3:9-22

Module not found: Error: Can't resolve 'fs' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'


ERROR in ./node_modules/request/lib/har.js 5:9-31

Module not found: Error: Can't resolve 'querystring' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'
Did you mean './querystring'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (node_modules, /mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "querystring": require.resolve("querystring-es3") }'
	- install 'querystring-es3'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "querystring": false }


ERROR in ./node_modules/request/lib/hawk.js 3:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/request/lib/helpers.js 5:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/request/lib/oauth.js 3:10-24

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/request/lib/oauth.js 13:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/request/lib/querystring.js 5:18-40

Module not found: Error: Can't resolve 'querystring' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'
Did you mean './querystring'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (node_modules, /mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "querystring": require.resolve("querystring-es3") }'
	- install 'querystring-es3'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "querystring": false }


ERROR in ./node_modules/request/lib/redirect.js 3:10-24

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/request/lib/tunnel.js 3:10-24

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/request/node_modules/tough-cookie/lib/cookie.js 33:10-24

Module not found: Error: Can't resolve 'net' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/node_modules/tough-cookie/lib'


ERROR in ./node_modules/request/node_modules/tough-cookie/lib/cookie.js 35:15-35

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/node_modules/tough-cookie/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/request/node_modules/tough-cookie/lib/cookie.js 37:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/node_modules/tough-cookie/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/request/node_modules/tough-cookie/lib/memstore.js 39:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request/node_modules/tough-cookie/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/request/request.js 3:11-26

Module not found: Error: Can't resolve 'http' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
	- install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "http": false }


ERROR in ./node_modules/request/request.js 5:12-28

Module not found: Error: Can't resolve 'https' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }'
	- install 'https-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "https": false }


ERROR in ./node_modules/request/request.js 7:10-24

Module not found: Error: Can't resolve 'url' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "url": require.resolve("url/") }'
	- install 'url'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "url": false }


ERROR in ./node_modules/request/request.js 9:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/request/request.js 11:13-30

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/request/request.js 13:11-26

Module not found: Error: Can't resolve 'zlib' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/request'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "zlib": require.resolve("browserify-zlib") }'
	- install 'browserify-zlib'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "zlib": false }


ERROR in ./node_modules/safe-buffer/index.js 2:13-30

Module not found: Error: Can't resolve 'buffer' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/safe-buffer'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
	- install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "buffer": false }


ERROR in ./node_modules/safer-buffer/safer.js 4:13-30

Module not found: Error: Can't resolve 'buffer' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/safer-buffer'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
	- install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "buffer": false }


ERROR in ./node_modules/sshpk/lib/certificate.js 10:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/certificate.js 18:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/sshpk/lib/dhe.js 10:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/ed-compat.js 9:13-30

Module not found: Error: Can't resolve 'stream' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
	- install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "stream": false }


ERROR in ./node_modules/sshpk/lib/ed-compat.js 11:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/sshpk/lib/errors.js 4:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/sshpk/lib/fingerprint.js 10:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/formats/openssh-cert.js 18:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib/formats'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/formats/pem.js 11:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib/formats'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/formats/ssh-private.js 18:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib/formats'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/identity.js 8:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/identity.js 16:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/sshpk/lib/key.js 8:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/private-key.js 10:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/private-key.js 18:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/sshpk/lib/signature.js 10:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/sshpk/lib/utils.js 31:13-30

Module not found: Error: Can't resolve 'crypto' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/sshpk/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "crypto": require.resolve("crypto-browserify") }'
	- install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "crypto": false }


ERROR in ./node_modules/tunnel-agent/index.js 3:10-24

Module not found: Error: Can't resolve 'net' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'


ERROR in ./node_modules/tunnel-agent/index.js 4:10-24

Module not found: Error: Can't resolve 'tls' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'


ERROR in ./node_modules/tunnel-agent/index.js 5:11-26

Module not found: Error: Can't resolve 'http' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "http": require.resolve("stream-http") }'
	- install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "http": false }


ERROR in ./node_modules/tunnel-agent/index.js 6:12-28

Module not found: Error: Can't resolve 'https' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "https": require.resolve("https-browserify") }'
	- install 'https-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "https": false }


ERROR in ./node_modules/tunnel-agent/index.js 8:13-30

Module not found: Error: Can't resolve 'assert' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "assert": require.resolve("assert/") }'
	- install 'assert'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "assert": false }


ERROR in ./node_modules/tunnel-agent/index.js 9:11-26

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/tunnel-agent'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }


ERROR in ./node_modules/verror/lib/verror.js 6:15-30

Module not found: Error: Can't resolve 'util' in '/mnt/0A04AA576FFEBB0F/Projects/campus_connect/frontend/node_modules/verror/lib'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "util": require.resolve("util/") }'
	- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "util": false }

I'm unable to make a payment using the sandbox payment link.

I have a simple setup where I'm creating a payment link on the server using the https://api.flutterwave.com/v3/payments endpoint and then redirecting to the link on the frontend.

I haven't been able to make a successful payment. The processing loader keeps spinner endlessly with some errors in the console.

Please find attached some screenshots.

Would really appreciate some help here ASAP. Thanks.

Screenshot 2022-04-27 at 9 42 40 AM

Screenshot 2022-04-27 at 9 42 24 AM

Mobile money franco unknown error

I am tying a simple request from node js but I keep getting this error

{ status: 'error', message: 'Transaction Failed', data: null }

It works with the message payment initiated. so I want to try it on live and see how it interact with phone. Is there any missing data?

import Ravepay from "flutterwave-node-v3";
import { v4 } from "uuid";

const flw = new Ravepay(
"MY_PUBLIC_KEY",
"MY_SECRET_KEY",
true,
);

const pay = async (_request, response) => {
try {
const payload = {
tx_ref: v4(),
amount: "500",
currency: "XOF",
email: "[email protected]",
phone_number: "08517414",
firstname: "temi",
name: "frediustcdev is here",
fullname: "dro freddy",
lastname: "desola",
is_mobile_money_franco: 1,
country: "CI",
};

	const result = await flw.MobileMoney.franco_phone(payload);

	console.log("[success] => ", result);

	response.status(200).send(result.data);
} catch (error) {
	console.log("[ERROR] => ", error);

	response.status(400).send(error);
}

};

Redirect url not working

I specified a redirect_url in my initial payload and tested the 3DS authorization process but after the completion of the process in the redirect link specified in meta.authorization.redirect, it just closes the tab and doesn't redirect to the redirect_url specified in the payload.

What can I do about this?

Error: Cannot find module 'flutterwave_node_3

Please I need assistance in implementing the package, I get "Error: Cannot find module 'flutterwave_node_3'" when I required it, I use Browserify. Is there a way I should go about this or what am I not doing right?

Difference between PIN and OTP

if (response.meta.authorization.mode === 'pin') {
let payload2 = payload
payload2.authorization = {
"mode": "pin",
"fields": [
"pin"
],
"pin": 3310
}
const reCallCharge = await flw.Charge.card(payload2)

        const callValidate = await flw.Charge.validate({
            "otp": "12345",
            "flw_ref": reCallCharge.data.flw_ref
        })
        console.log(callValidate)

    }

just a quick question, am i getting both the "pin" and "otp" value from the user ?

Understanding the code

Please I need help with the charge card function I don't understand the pin and otp part of the code,
can anyone help please am using node js express and ejs view engine

Old axios depedency

The issue

Flutterwave-node-v3 is dependent on the axios 0.19.x which is vurnelable to Serverside request forgery attacks
unfortunately there's no fix avaiable with snyk or npm audit the result is my code holds 2 high severity vulnerabilities

Expected behaviour

The package should be depending on updated versions of axios

Supporting docs

The npm advisory on this can be found here

SyntaxError: The keyword 'package' is reserved, error when trying to bundle the flutterwave_node_V3 package.

hello, I have been getting this error whenever I tried bundling the flutterwave_node_vs package and then on further research, I found out that the flutterwave_node_v3 package uses javascript-reserved words. and thus the error.
here was the error when bundling with rollup

[!] (plugin commonjs--resolver) SyntaxError: The keyword 'package' is reserved (4:6) in C:\Users\name\Desktop\elias\repo\repo\node_modules\flutterwave-node-v3\services\banks\rave.banks-branches.js
2: const q = require('q');
3: const axios = require('axios');
4: const package = require('../../package.json');
         ^
5:
6: const spec = morx.spec()
SyntaxError: The keyword 'package' is reserved (4:6) in C:\Users\computer name\Desktop\name\name\name\node_modules\flutterwave-node-v3\services\beneficiaries\rave.create.js

you can also check out the stack overflow issue here https://stackoverflow.com/q/74284704/14165332 and contribute to the discussion.

Test script throwing error

Getting this error anytime i try to run the test suit

/home/kira/Desktop/git/Flutterwave-node-v3/lib/rave.utils.js:8
		throw new error(message);
		^

Error: Public Key required
    at Object.RaveUtils.emptyCheck (/home/kira/Desktop/git/Flutterwave-node-v3/lib/rave.utils.js:8:9)
    at new RaveBase (/home/kira/Desktop/git/Flutterwave-node-v3/lib/rave.base.js:6:12)
    at Suite.<anonymous> (/home/kira/Desktop/git/Flutterwave-node-v3/test/rave.bank.test.js:23:20)
    at Object.create (/home/kira/Desktop/git/Flutterwave-node-v3/node_modules/mocha/lib/interfaces/common.js:112:19)
    at context.describe.context.context (/home/kira/Desktop/git/Flutterwave-node-v3/node_modules/mocha/lib/interfaces/bdd.js:40:27)
    at Object.<anonymous> (/home/kira/Desktop/git/Flutterwave-node-v3/test/rave.bank.test.js:17:1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.