npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-qiwi-api

v2.2.1

Published

node-qiwi-api ================ [![npm](https://img.shields.io/npm/v/node-qiwi-api)](https://www.npmjs.com/package/node-qiwi-api) [![npm](https://img.shields.io/npm/dt/node-qiwi-api.svg)](https://www.npmjs.com/package/node-qiwi-api) [![npm](https://img

Downloads

48

Readme

node-qiwi-api

npm npm npm

Official documentation for Qiwi api.

Get started

Firstly, get access token at Qiwi.

npm install node-qiwi-api

You can use callback and promise based api.

Initialise new wallet instance with your access token:

var callbackQiwi = require('node-qiwi-api').callbackApi;
var asyncQiwi = require('node-qiwi-api').asyncApi;

var callbackWallet = new callbackQiwi(token);
var asyncWallet = new asyncQiwi(token);

Now you can get information about your wallet and make money transfers.

Next examples presented for callback api.

Identification data

wallet.getIdentificationData(wallet, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

Identify wallet

wallet.identifyWallet(wallet, requestOptions, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

requestOptions includes:

  • birthDate - Date of birth (YYYY-MM-DD)
  • firstName - First name
  • middleName - Middle name
  • lastName - Last name
  • passport - Serial and number of passport
  • snils - SNILS number
  • inn - INN number
  • oms - OMS number

Information about account

wallet.getAccountInfo((err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

Get accounts

wallet.getAccounts(wallet, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

Get possible account aliases

Return possible for creation at your wallet account aliases

wallet.getPossibleAccountAliases(wallet, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

Create account

Create account in new currency

wallet.createAccount(wallet, accountAlias, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567) accountAlias - Account alias, possible values: qw_wallet_rub, qw_wallet_kzt, qw_wallet_usd, qw_wallet_eur

If call was successfull as data you will have { success: true }, else { success: false }

Set default account

Set default account for all operations

wallet.setDefaultAccount(wallet, accountAlias, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567) accountAlias - Account alias, possible values: qw_wallet_rub, qw_wallet_kzt, qw_wallet_usd, qw_wallet_eur

If call was successfull as data you will have { success: true }, else { success: false }

Operation history

wallet.getOperationHistory(wallet, requestOptions, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

requestOptions includes:

  • rows - Amount of payments in response. Integer from 1 to 50. Required.
  • operation - Operation type. ALL - all operations, IN - incoming only, OUT - outgoing only, QIWI_CARD - just payments by QIWI cards (QVC, QVP). Default - ALL
  • sources - Payment source. Array of values. Allowable values: QW_RUB - ruble account of wallet, QW_USD - usd account of wallet, QW_EUR - euro account of wallet, CARD - added and not added to wallet cards, MK - account of mobile operator. If not presented, you will receive info from all sources
  • startDate - Start date (YYYY-MM-ddThh:mm:ssZ). By default equals yesterday date. Use only with endDate
  • endDate - End date (YYYY-MM-ddThh:mm:ssZ). By default equals current date. Use only with startDate
  • nextTxnDate - Transaction date (YYYY-MM-ddThh:mm:ssZ), (see nextTxnDate in response). Use only with nextTxnId
  • nextTxnId - Previous transaction number (see nextTxnId in response). Use only with nextTxnDate Maximum interval between startDate and endDate - 90 days.

As example - information about 25 outgoing payments can be get by next way:

wallet.getOperationHistory({rows: 25, operation: "OUT"}, (err, operations) => {
  /* some code */
})

Operations statistics

If you want to see statistics for summs of payments by period of time use this method. Example:

wallet.getOperationStatistics(wallet, requestOptions, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

wallet - wallet number without plus (+) and with prefix (79991234567)

requestOptions: operation, sources, startDate, endDate - Parameters are similar to getOperationHistory.

Get transaction info

Example:

wallet.getTransactionInfo(transactionId, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

Get transaction receipt

Example:

wallet.getReceipt(transactionId, requestOptions, (err, data) => {
  if(err) {
    /*hanle error*/
  }
  console.log(data);
})

requestOptions includes:

  • type - Transaction type from getOperationHistory
  • format - File format, see wallet.receiptFormat

Transfer to Qiwi wallet

wallet.toWallet({ amount: '0.01', comment: 'test', account: '+79261234567' }, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})
  • amount - Ammount of money
  • comment - Commentary for payment.
  • account - Receiver phone number (with international prefix)

Transfer to mobile phone

Similar to "transfer to qiwi wallet", but number without international prefix:

wallet.toMobilePhone({ amount: '0.01', comment: 'test', account: '9261234567' }, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

Transfer to card

Similar to other transfers, but account is card number:

wallet.toCard({ amount: '0.01', comment: 'test', account: '5213********0000' }, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

Transfer to bank account

wallet.toBank({ amount: '0.01', account: '5213********0000', account_type: '1', exp_date: 'MMYY' }, recipient, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})
  • ammount - Ammount of money
  • account - Receiver card/account number
  • account_type - Type of bank identificator.
    • for Alfa-bank (Альфа-Банк) - 1
    • for OTP Bank (АО ОТП БАНК) - 1
    • for Rosselhozbank (АО РОССЕЛЬХОЗБАНК) - 5
    • for Russian Standard (Русский Стандарт) - 1
    • for VTB (ВТБ ПАО) - 5
    • for Promsvyazbank (Промсвязьбанк) - 7
    • for Sberbank (ПАО Сбербанк) - 5
    • for Renessans Credit (Ренессанс Кредит) - 1
    • for Moscow Credit Bank (ПАО Московский кредитный банк) - 5
  • exp_date - Card expiration date (MMYY), as examlpe: 0218 - february 2018. Only for card transfer.
  • recipient -
    • 464 - Alfa-bank (Альфа-Банка)
    • 466 - Tinkoff Bank (Тинькофф Банк)
    • 804 - OTP Bank (АО ОТП БАНК)
    • 810 - Rosselhozbank (АО РОССЕЛЬХОЗБАНК)
    • 815 - Russian Standard (Русский Стандарт)
    • 816 - VTB (ВТБ ПАО)
    • 821 - Promsvyazbank (Промсвязьбанк)
    • 870 - Sberbank (ПАО Сбербанк)
    • 881 - Renessans Credit (Ренессанс Кредит)
    • 1135 - Moscow Credit Bank (ПАО Московский кредитный банк)

Get currency exchange rates

wallet.getCrossRates((err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

Transfer by requisites

wallet.toCard(requestOptions, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

requestOptions includes:

  • amount - Amount of money
  • account - Receiver account number
  • bankName - Receiver bank name
  • bik - Receiver bank bik
  • city - Receiver city
  • organizationName - Receiver organization name
  • inn - Receiver organization inn
  • kpp - Receiver organization kpp
  • nds - 'НДС не облагается' or 'В т.ч. НДС'
  • purpose - Purpose of payment
  • urgent - 0 or 1. Urgent pay need 10 minutes to complete. Available from 9.00 AM to 8.30 PM (09.00 - 20.30) by Moscow time (GMT+3). Service fee - 25 rubles
  • senderName - Sender name
  • senderMiddleName - Sender middle name
  • senderLastName - Sender last name

Convert currency at you wallet

wallet.convertCurrency({amount: 10, currency: wallet.currencyCode.KZT, account:'+79991234567'}, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

requestOptions includes:

  • account - Phone number with plus and international prefix, as example +79991234567
  • currency - Currency code - 3 number by ISO-4217 (see wallet.currencyCode)
  • amount - Amount of money for calculate commission
  • comment - Commentary for payment.

Get invoices

wallet.getInvoices(requestOptions, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

requestOptions includes:

  • rows - Amount of payments in response. Integer from 1 to 50. Required.
  • from - Date from
  • to - Date to
  • nextId - If present, method will return invoices from this id
  • nextDate - If present, method will return invoices created before this time

Pay invoice

wallet.payInvoice(invoiceId, currency, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})
  • invoiceId - Invoice id from getInvoices (bills[].id)
  • currency - Currency from getInvoices (bills[].sum.currency)

Cancel invoice

wallet.cancelInvoice(invoiceId, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})
  • invoiceId - Invoice id from getInvoices (bills[].id)

Check commission rates

wallet.checkOnlineCommission(recipient, requestOptions, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

recipient - Allowable values stored in wallet.recipients

requestOptions includes:

  • account - Phone number with international prefix or card/account number, as example 79991234567
  • amount - Amount of money for calculate commission

Check operation commission

wallet.checkCommission(recipient, (err, data) => {
  if(err) {
    /* handle err*/
    }
  console.log(data);
})

data.content.terms.commission.ranges[i]:

  • recipient - Allowable values stored in wallet.recipients

Response contains:

  • bound - Payment amount, starting from which the condition applies
  • rate - Commission (absolute multiplier)
  • fixed - Fixed amount of commission