UNPKG

glide-nodejs-sdk

Version:

Glide NodeJS SDK

481 lines (362 loc) 11.3 kB
## Glide NodeJS SDK Nodejs SDK for [Glide](https://doc.ourglide.com/). ### Installation ``` npm install glide-nodejs-sdk or yarn add glide-nodejs-sdk ``` ### Usage ```js // import the library import Glide from "glide"; const glide = new Glide("your-secret-key", "your-public-key"); ``` ### Introduction Our goal is to give access to financial opportunity anywhere in emerging markets. Great products don’t make you think. ### Examples Glide SDK made use of the standard Javascript Promise. it support both then-catch syntax and async-await. #### Using Then-Catch ```js glide.customer .getAll({ page: 1 }) .then((response) => { console.log("Customer list: ", response.customers); console.log("Metadata: ", response.metadata); }) .catch((error) => { console.log("An error occurred: ", error); }); ``` #### Or you can use the Async-Await syntax ```js try { const response = await glide.customer.getAll({ page: 1 }); console.log("Customer list: ", response.customers); console.log("Metadata: ", response.metadata); } catch (error) { console.log("An error occurred: ", error); } ``` Note: All examples in this documentation will make use of the async-await syntax. ### BVN APIs Resolve BVN details ##### Basic ```js const response = await glide.bvn.basic("12345678901"); console.log("Basic details: ", response); ``` ##### With image and more details ```js const response = await glide.bvn.withImage("12345678901"); console.log("More details with image: ", response); ``` ### Customer APIs To get list of all customers ```js const response = await glide.customer.getAll({ page: 1 }); console.log("Customer list: ", response.customers); console.log("Metadata: ", response.metadata); ``` Update customer information ```js const updatedRecord = await glide.customer.update("customer-id", { firstName: "Updated", lastName: "Good", }); console.log("Updated record", updatedRecord); ``` List all customer transactions ```js const response = await glide.customer.transactions({ customerId: "customer-id", page: 1, type: "CREDIT" }); console.log("Transaction list", response.transactions); console.log("Metadata information about pagination", response.metadata); ``` ### Wallet APIs To create a new customer wallet ```js /* * @params firstName First name * @params lastName Last name * @params phoneNumber Phone number. * @params dateOfBirth Date of birth * @params customerId The customer ID * * @params bvn Optional BVN. * @params metadata Optional metadata information. */ const response = await glide.wallet.createCustomerWallet({ firstName: "Rilwan", lastName: "Customer", phoneNumber: "08030223345", dateOfBirth: "1991-09-13", bvn: "01234567890", customerId: "49d4ea6d-d3dc-490c-800d-7c50b89cf8ff", //optional: customer to be charged for the transaction metadata: { // optional "some-data": "some value", "more-data": "more value", }, }); console.log("Wallet: ", response.wallet); console.log("Customer: ", response.customer); ``` To get the list of all customer wallets ```js const wallets = await glide.wallet.allCustomerWallets(); console.log("Customer wallets: ", wallets); ``` To get a customer wallet details ```js /* * @params customerId customer ID */ const response = await glide.wallet.getCustomerWallet("49d4ea6d-d3dc-490c-800d-7c50b89cf8ff"); console.log("Customer wallet details: ", response); ``` To credit customer wallet ```js /* * @params amount The amount to be transfered. * @params reference Optional reference number. * @params customerId Customer ID of the customer to be credited. * @params metadata Optional transaction metadata. */ const response = await glide.wallet.creditCustomerWallet({ amount: 1000, reference: "13k34jk4j54234", customerId: "982c9510-24ef-4c85-aea4-fa2408e5ab0d", metadata: { "some-data": "sample data", "more-data": "any value here", }, }); console.log("Transaction details: ", response); ``` To debit customer wallet ```js /* * @params amount The amount to be transfered. * @params reference Optional reference number. * @params customerId Customer ID of the customer to be debited. * @params metadata Optional transaction metadata. */ const response = await glide.wallet.debitCustomerWallet({ amount: 1000, reference: "13k34jk4j54234", customerId: "982c9510-24ef-4c85-aea4-fa2408e5ab0d", metadata: { "some-data": "sample data", "more-data": "any value here", }, }); console.log("Transaction details: ", response); ``` To set customer wallet transaction pin ```js const response = await glide.wallet.setWalletTransactionPin({ pin: "1234", customerId: "982c9510-24ef-4c85-aea4-fa2408e5ab0d", }); console.log(response.message); ``` Get wallet settle balance. ```js const balance = await glide.wallet.getSettlementBalance(); console.log("Total amount to balance customer wallets: ", balance); ``` Settle customer balances. ```js const completed = await glide.wallet.settleCustomerBalances(); console.log(completed ? "Settlement completed successfully" : "Unable to settle customer balances"); ``` Freeze customer wallet. ```js /* * @params customerId */ const completed = await glide.wallet.closeCustomerWallet("982c9510-24ef-4c85-aea4-fa2408e5ab0d"); console.log(completed ? "Customer wallet successfully frozen" : "Unable to freeze customer wallet"); ``` UnFreeze customer wallet. ```js /* * @params customerId */ const completed = await glide.wallet.enableCustomerWallet("982c9510-24ef-4c85-aea4-fa2408e5ab0d"); console.log(completed ? "Customer wallet successfully enabled" : "Unable to unfreeze customer wallet"); ``` Perform wallet to wallet transfer. ```js /* * @params amount The amount to be transfered. * @params toCustomerId Customer ID of the customer to be credited. * @params fromCustomerId Customer ID of the customer to be debited. */ const completed = await glide.wallet.walletToWalletTransfer({ amount: 270, toCustomerId: "982c9510-24ef-4c85-aea4-fa2408e5ab0d", fromCustomerId: "49d4ea6d-d3dc-490c-800d-7c50b89cf8ff", }); console.log(completed ? "Transaction completed successfully." : "An error occurred while completing the transaction"); ``` Make a batch transaction debitting multiple customer wallet simultaneously. ```js /* * @params batchReference A unique reference number for the batch. * @params amount The amount to be transfered. * @params reference A unique reference number for the individual transaction. * @params customerId Customer ID of the customer to be credited. */ const response = await glide.wallet.batchDebitCustomerWallets({ batchReference: "88adsf8hssa43sefas8df8ahhjefasdff8", transactions: [ { amount: 500, reference: "dkfajdfsdjjjssd23sfjasdfasdkfjds9", customerId: "f75774b0-6f99-4029-92a9-2dfe7e15d3f0", }, { amount: 300, reference: "dkfajdfsdjjjdsfjasd45fssasdkfjds10", customerId: "de304d11-ca4e-491f-8851-9ca09a0084a3", }, ], }); const { data, message } = response; console.log(message); console.log("Failed transactions: ", data.rejected); console.log("Failed transactions: ", data.rejected); console.log("Batch transaction reference: ", data.batchReference); ``` Make a batch transaction crediting multiple customer wallet simultaneously. ```js /* * @params batchReference A unique reference number for the batch. * @params amount The amount to be transfered. * @params reference A unique reference number for the individual transaction. * @params customerId Customer ID of the customer to be credited. */ const response = await glide.wallet.batchCreditCustomerWallets({ batchReference: "8ede8w340dk3erowr3ef5", transactions: [ { amount: 1000, reference: "okdrfadd3freaksd4f", customerId: "6c415ca9-0cc9-41cf-ac46-a79e3b6df8dc", }, { amount: 50000, reference: "okdf3arded4faeksdfd", customerId: "33b18d9a-194f-4f36-a259-004e68fcd3fc", }, ], }); const { data, message } = response; console.log(message); console.log("Failed transactions: ", data.rejected); console.log("Failed transactions: ", data.rejected); console.log("Batch transaction reference: ", data.batchReference); ``` Enable customer to perform batch transaction by crediting multiple customer wallet simultaneously. ```js /* * @params recipients The customers and amount to be credited. * @params customerId Customer ID of the customer initializing the transaction. */ const response = await glide.wallet.customerBatchCreditCustomerWallets({ batchReference: "88adsf8hssasefas8df8ahhjefasdff8", customerId: "6c415ca9-0cc9-41cf-ac46-a79e3b6df8dc", recipients: [ { amount: 200, reference: "dkfajdfsdjjjssdsfjasdfasdkfjds9", customerId: "c938a018-8987-4411-97c5-e456868741e8", }, { amount: 300, reference: "dkfajdfsdjjjdsfjasdfssasdkfjds10", customerId: "33b18d9a-194f-4f36-a259-004e68fcd3fc", }, ], }); const { data, message } = response; console.log(message); console.log("Failed transactions: ", data.rejected); console.log("Failed transactions: ", data.rejected); console.log("Batch transaction reference: ", data.batchReference); ``` Reverse batch transaction ```js /* * @params customerId Customer ID of the customer initializing the transaction. */ const response = await glide.wallet.reverseBatchTransaction("88adsf8hssa43sefas8df8ahhjefasdff8"); const { data, message } = response; console.log(message); console.log("Failed transactions: ", data.rejected); console.log("Failed transactions: ", data.rejected); console.log("Batch transaction reference: ", data.batchReference); ``` ### Merchant APIs Get merchant profile information ```js const profile = await glide.merchant.profile(); console.log("Profile information: ", profile); ``` Update merchant details ```js const completed = await glide.merchant.updateProfile({ canLogin: true, sendEmail: true, businessType: "FINANCIAL-SERVICES", callbackURL: "https://product.com/callback/glide", sandboxCallbackURL: "http://testing.com/callback/glide", }); console.log(completed ? "Profile successfully updated" : "An error occurred while completing profile update"); ``` Get merchant wallet information ```js const wallet = await glide.merchant.getWallet(); console.log("The wallet informmation: ", wallet); ``` Get merchant transaction information ```js const response = await glide.merchant.getTransactions({ page: 1, type: "ALL", }); console.log("Transaction informmation: ", response.transactions); console.log("Page metadata/pagination information: ", response.metadata); ``` ### Card Service APIs Create a new card for the customer ```js const response = await glide.card.create({ address1: "20 Cresent Road, Ogba, Lagos", address2: "20 Adewale Street, Surulere, Lagos", customerId: "c938a018-8987-4411-97c5-e456868741e8", }); console.log("Card successfully created."); ``` Activate card ```js const response = await glide.card.activate({ last6: "000352", customerId: "c938a018-8987-4411-97c5-e456868741e8", }); console.log("Card activated"); ``` Fund card ```js const response = await glide.card.fund({ amount: 2000, customerId: "c938a018-8987-4411-97c5-e456868741e8", }); console.log("Card funded"); ``` Get card balance ```js const balance = await glide.card.getBalance("customer-wallet-id"); console.log("Card balance: ", balance); ```