lemonway
v1.4.0
Published
Lemonway non-official SDK
Downloads
284
Readme
Lemonway SDK
Usage
Create a new wallet and credit it by card
var Lemonway = require('lemonway');
var lemonway = new Lemonway(login, pass, JSONEndpoint);
lemonway.Wallet.create(ip, {
id: id,
email: client.mail,
firstName: client.firstName,
lastName: client.lastName,
birthdate: client.birthdate
}).then(function (wallet) {
return wallet.moneyIn(ip, {
amount: amount,
cardNumber: client.cardNumber,
cardCrypto: client.cardCrypto,
cardDate: client.cardDate,
autoCommission: true
});
}).then(function (transaction) {
...
});
Get a wallet and credit it by card using 3D Secure
var Lemonway = require('lemonway');
var lemonway = new Lemonway(login, pass, JSONEndpoint);
lemonway.Wallet.get(req, walletId)
.then(function (wallet) {
return wallet.moneyIn3DInit(req, {
amount: amount,
cardNumber: client.cardNumber,
cardCrypto: client.cardCrypto,
cardDate: client.cardDate,
autoCommission: true,
returnUrl: 'https://your-service/your-return-path'
});
}).spread(function (acs, transaction) {
// redirect the client to acs.actionUrl
});
List input transactions
var Lemonway = require('lemonway');
var lemonway = new Lemonway(login, pass, JSONEndpoint);
lemonway.Transaction.list(req)
.then(function (transactions) {
...
});
Upload a KYC File
var Lemonway = require('lemonway');
var lemonway = new Lemonway(login, pass, JSONEndpoint, WebkitURL);
lemonway.Wallet.get(req, walletId)
.then(function (wallet) {
return wallet.uploadFile(req, {
fileName: 'RIB.png',
type: 'RIB',
filePath: './test/wallet/RIB.png'
});
});
API
Lemonway(login, pass, JSONEndpoint, webKitUrl) -> lemonway
Create a new lemonway instance
arg|type|required|description ---|----|--------|----------- login | string | true | your lemonway login | pass | string | true | your lemonway password | JSONEndpoint | string | true | your lemonway JSON endpoint | webKitUrl | string | true | your lemonway webkit Url |
lemonway.Wallet.create(ip, opts) -> Promise<wallet>
Create a new Wallet and return a promise that resolve to the new wallet
arg|type|required|description ---|----|--------|----------- opts | object | true | opts.id | string | true | external id (must be unique) | opts.email | string | true | client email address (must be unique) | opts.firstName | string | true | client first name | opts.lastName | string | true | client last name | opts.title | string | false | client title (can be M, F, J or U) | opts.street | string | false | opts.postCode | string | false | opts.city | string | false | client city of residence | opts.country | string | false | client country of residence | opts.phoneNumber | string | false | opts.mobileNumber | string | false | opts.birthdate | string | false | format DD/MM/YYYY opts.isCompany | bool | false | opts.companyName | string | false | opts.companyWebsite | string | false | opts.companyDescription | string | false | opts.companyIdentificationNumber | string | false | opts.isDebtor | string | false | opts.nationality | string | false | opts.birthCity | string | false | opts.birthCountry | string | false | opts.payerOrBeneficiary | bool | false | opts.isOneTimeCustomer | bool | false |
lemonway.Wallet.update(ip, wallet, opts) -> Promise<wallet>
Update a wallet and return a promise to the updated wallet
arg|type|required|description ---|----|--------|----------- wallet | Wallet or string | true | Can be a wallet instance or just a wallet id opts | object | true | opts.email | string | true | client email address | opts.firstName | string | true | client first name | opts.lastName | string | true | client last name | opts.title | string | false | client title (can be M, F, J or U) | opts.street | string | false | opts.postCode | string | false | opts.city | string | false | client city of residence | opts.country | string | false | client country of residence | opts.phoneNumber | string | false | opts.mobileNumber | string | false | opts.birthdate | string | false | format DD/MM/YYYY opts.isCompany | bool | false | opts.companyName | string | false | opts.companyWebsite | string | false | opts.companyDescription | string | false | opts.companyIdentificationNumber | string | false | opts.isDebtor | string | false | opts.nationality | string | false | opts.birthCity | string | false | opts.birthCountry | string | false |
lemonway.Wallet.get(ip, id) -> Promise<{ wallet, documents: [], ibans: [], sddMandates: [], creditCards: [] }>
Get a wallet and its attached data by id
arg|type|required|description ---|----|--------|----------- id | string | true | wallet id
lemonway.Wallet.list(ip, opts) -> Promise<[wallet]>
List wallet where amount changed after 'from'
arg|type|required|description ---|----|--------|----------- opts.from | date | false | default to 0
lemonway.Wallet.uploadFile(ip, wallet, opts) -> Promise<document>
Upload a KYC file to Lemonway
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.fileName | string | true | opts.type | string | true | the file type, can be ID from identity documents, PROOF_OF_ADDRESS, RIB or KBIS opts.file | string or buffer | true | a string of a base64 file content or a node buffer, optional if filePath is set opts.filePath | string | true | the path to the file to upload, optional if file is set
lemonway.Wallet.listKyc(ip, opts) -> Promise<[{wallet, documents: [document], ibans: [iban], sddMandates: [sddMandate]}]>
List kyc
arg|type|required|description ---|----|--------|----------- ip | string | true | origin ip opts.from | date | false | date to list from, default to 0
lemonway.Wallet.getWalletTransHistory(ip, wallet, opts) -> Promise<[transaction]>
List the wallet transaction history
arg|type|required|description ---|----|--------|----------- opts.from | date | false | date to list from, default to 0 opts.to | date | false | date to list until, default to now
lemonway.Wallet.moneyIn(ip, wallet, opts) -> Promise<transaction>
Credit a wallet via credit card WITHOUT 3D secure
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.cardNumber | string | true | opts.cardCrypto | string | true | opts.cardExpiration | string | true | opts.amount | float | true | The amount to be credited opts.commission | float | false | The commission amount, default to 0 opts.autoCommission | bool | true | opts.isPreAuth | bool | false | opts.delayedDays | int | false | opts.token | string | false | an optional id token
lemonway.Wallet.moneyIn3DInit(ip, wallet, opts) -> Promise<{acs, transaction}>
Credit a wallet via credit card with 3D secure
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.cardNumber | string | true | opts.cardCrypto | string | true | opts.cardExpiration | string | true | opts.amount | float | true | The amount to be credited opts.commission | float | false | The commission amount, default to 0 opts.autoCommission | bool | true | opts.token | string | false | an optional id token opts.returnUrl | string | true | return URL after the Atos 3D secure process
lemonway.Transaction.moneyIn3DConfirm(ip, transaction, opts) -> Promise<{acs, transaction}>
Confirm a 3D secure payment process
arg|type|required|description ---|----|--------|----------- transaction | id or transaction | true | a transaction or a transaction id opts.isPreAuth | bool | false | opts.delayedDays | int | false |
lemonway.Transaction.moneyIn3DAuthenticate(ip, transaction) -> Promise<moneyIn>
Confirm that a transaction was done with 3D secure enabled
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.isPreAuth | bool | false | opts.delayedDays | int | false |
lemonway.Wallet.registerCard(ip, wallet, opts) -> Promise<card>
Attach a card to a wallet
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.cardNumber | string | true | opts.cardCrypto | string | true | opts.cardExpiration | string | true |
lemonway.Wallet.unregisterCard(ip, wallet, card) -> Promise<card>
Detach a card from wallet
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id card | id or card | true | a card or a card id
lemonway.Wallet.moneyInWithCardId(ip, wallet, card, opts) -> Promise<transaction>
Credit a wallet via a registered card
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id card | id or card | true | a card or a card id opts.amount | float | true | amount to credit opts.commission | float | false | opts.message | float | false | opts.autoCommission | bool | true | opts.isPreAuth | bool | true | opts.delayedDays | int | false | opts.token | string | false |
lemonway.Transaction.moneyInValidate(ip, transaction) -> Promise<transaction>
Validate a pre-auth transaction
arg|type|required|description ---|----|--------|----------- transaction | id or transaction | true | a transaction or a transaction id
lemonway.Wallet.registerSDDMandate(ip, wallet, opts) -> Promise<sddMandate>
Register a debit mandate
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id opts.holder | string | true | the bank account holder opts.bic | string | true | BIC code opts.iban | string | true | opts.isRecurring | bool | true | opts.street | string | false | mandatory to sign a mandate opts.postCode | string | false | mandatory to sign a mandate opts.city | string | false | mandatory to sign a mandate opts.country | string | false | mandatory to sign a mandate opts.mandateLanguage | string | false | mandate language, can be 'fr', 'es' or 'de', default to 'fr'
lemonway.Wallet.unregisterSDDMandate(ip, wallet, mandate) -> Promise<sddMandate>
Unregister a mandate
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id mandate | id or mandate | true | a mandate or a mandate id
lemonway.Wallet.signDocumentInit(ip, wallet, mandate, opts) -> Promise<{token, redirectUrl}>
Init a document signature, return a redirectUrl to which you should redirect you client
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id mandate | id or mandate | true | a mandate or a mandate id mobileNumber | string | true | the client mobile number, is mandatory since the client will receive a confirmation code via SMS returnUrl | string | true | the client will be redirected to this URL in case of success errorUrl | string | true | the client will be redirected to this URL in case of failure
lemonway.Wallet.moneyInSddInit(ip, wallet, mandate, opts) -> Promise<transaction>
Credit a wallet via a previously signed sdd mandate
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id mandate | id or mandate | true | a mandate or a mandate id amount | float | true | commission | float | false | autoCommission | bool | true | collectionDate | date | false | default to now
lemonway.Wallet.moneyInChequeInit(ip, wallet, opts) -> Promise<transaction>
Pre-register a cheque, you still have to send the document to Lemonway
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id amount | float | true | commission | float | false | autoCommission | bool | true |
lemonway.Wallet.registerIBAN(ip, wallet, opts) -> Promise<iban>
Attach an iban to a wallet
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id holder | string | true | iban holder bic | string | false | not mandatory if its a french iban iban | string | true | dom1 | string | false | dom2 | string | false | comment | string | false |
lemonway.Wallet.moneyOut(ip, wallet, iban, opts) -> Promise<transaction>
Attach an iban to a wallet
arg|type|required|description ---|----|--------|----------- wallet | id or wallet | true | a wallet or a wallet id iban | id or wallet | true | an iban or an iban id amount | float | true | commission | float | false | autoCommission | bool | true | message | string | false |
lemonway.Wallet.sendPayment(ip, fromWallet, toWallet, opts) -> Promise<transaction>
P2P payment, send a payment from a wallet to another wallet
arg|type|required|description ---|----|--------|----------- fromWallet | id or wallet | true | a wallet or a wallet id toWallet | id or wallet | true | a wallet or a wallet id amount | float | true | message | string | false | scheduleDate | date | false | privateData | string | false | additional data
lemonway.Transaction.get(ip, id, opts) -> Promise<transaction>
Get a transaction by id
arg|type|required|description ---|----|--------|----------- id | string | true | payment id opts | object | true | opts.walletIp | string | true | Client ip | opts.walletUa | string | false | Client user agent |
lemonway.Transaction.list(ip, opts) -> Promise<[transaction]>
lemonway.Transaction.list(ip, opts) -> Promise<[transaction]>
List input transaction
arg|type|required|description ---|----|--------|----------- opts | object | false | opts.before | date | false | opts.after | date | false |
lemonway.MoneyIn.get(ip, id, opts) -> Promise<moneyIn>
lemonway.MoneyIn.get(ip, id, opts) -> Promise<moneyIn>
Get a money in
arg|type|required|description ---|----|--------|----------- id | string | true | wallet id opts | object | true | opts.walletIp | string | true | Client ip | opts.walletUa | string | false | Client user agent |
lemonway.MoneyOut.get(ip, id, opts) -> Promise<moneyOut>
lemonway.MoneyOut.get(ip, id, opts) -> Promise<moneyOut>
Get a money out
arg|type|required|description ---|----|--------|----------- id | string | true | wallet id opts | object | true | opts.walletIp | string | true | Client ip | opts.walletUa | string | false | Client user agent |
lemonway.Wallet.list(ip, opts) -> Promise<[wallet, ...]>
lemonway.Wallet.list(ip, opts) -> Promise<[wallet, ...]>
List wallets
arg|type|required|description ---|----|--------|----------- opts | object | true | opts.walletIp | string | true | Client ip | opts.walletUa | string | false | Client user agent |
lemonway.Wallet.registerCard(ip, wallet, opts) -> Promise<card>
lemonway.Wallet.registerCard(ip, wallet, opts) -> Promise<card>
Register and link a card to a wallet
arg|type|required|description ---|----|--------|----------- wallet | Wallet or string | true | Can be a wallet instance or just a wallet id opts | object | true | opts.walletIp | string | true | Client ip opts.walletUa | string | false | Client user agent opts.cardNumber | string | true | opts.cardCode | string | true | opts.cardDate | string | true |
lemonway.Wallet.unregisterCard(ip, wallet, card, opts) -> Promise<card>
lemonway.Wallet.unregisterCard(ip, wallet, card, opts) -> Promise<card>
Unregister and link a card to a wallet
arg|type|required|description ---|----|--------|----------- wallet | Wallet or string | true | Can be a wallet instance or just a wallet id card | Card or string | true | Can be a card instance or just a card id opts | object | true | opts.walletIp | string | true | Client ip opts.walletUa | string | false | Client user agent
lemonway.getWizypayAds(ip, opts) -> Promise<[[wizypayOffer], [wizypayAd]]>
lemonway.getWizypayAds(ip, opts) -> Promise<[[wizypayOffer], [wizypayAd]]>
Get wizypay ads
arg|type|required|description ---|----|--------|----------- opts | object | true | opts.walletIp | string | true | Client ip opts.walletUa | string | false | Client user agent
Models
Wallet
- id ->
string
- lemonWayId ->
string
- balance ->
float
- name ->
string
- email ->
string
- status ->
string
- blocked ->
string
- method ->
string
- documents ->
[Document]
- ibans ->
[IBAN]
- sddMandates ->
[SDDMandate]
- update -> (
opts
) ->Promise<Wallet>
- updateStatus -> (
opts
) ->Promise<Wallet>
- moneyIn -> (
opts
) ->Promise<Transaction>
- moneyIn3DInit -> (
opts
) ->Promise<Transaction>
- registerCard -> (
opts
) ->Promise<Card>
- unregisterCard -> (
card
) ->Promise<Card>
- moneyInWithCardId -> (
card
,opts
) ->Promise<Transaction>
- registerIBAN -> (
opts
) ->Promise<IBAN>
- registerSDDMandate -> (
opts
) ->Promise<mandate>
- moneyInSDDInit -> (
mandate
,opts
) ->Promise<transaction>
- moneyInChequeInit -> (
opts
) ->Promise<transaction>
- moneyOut -> (
iban
,opts
) ->Promise<transaction>
- sendPayment -> (
toWallet
,opts
) ->Promise<transaction>
- createVCC -> (
opts
) ->Promise<{transaction, vcc}>
- uploadFile -> (
opts
) ->Promise<Document>
- listTransactions -> (
opts
) ->Promise<[transaction]>
ACS
- actionUrl ->
string|undefined
- actionMethod ->
string|undefined
- pareqFieldName ->
string|undefined
- pareqFieldValue ->
string|undefined
- termurlFieldName ->
string|undefined
- mdFieldName ->
string|undefined
- mdFieldValue ->
string|undefined
- mpiResult ->
string|undefined
Card
- id ->
string
- is3DSecure ->
boolean|undefined
- country ->
string|undefined
- authorizationNumber ->
string|undefined
- cardNumber ->
string|undefined
- expirationDate ->
string|undefined
Document
- id ->
string
- status ->
string|undefined
- type ->
string|undefined
- validityDate ->
string|undefined
IBAN
- id ->
string
- status ->
string|undefined
- iban ->
string
- swift ->
string
- holder ->
string
MoneyIn
- id ->
string
- O3DCode ->
string|undefined
SDDMandate
- id ->
string
- status ->
string
- iban ->
string
- swift ->
string
Transaction
- id ->
string
- date ->
Date|undefined
- debitedWallet ->
string|undefined
- creditedWallet ->
string|undefined
- amountDebited ->
number|undefined
- amountCredited ->
number|undefined
- fee ->
number|undefined
- amazonGiftCode ->
string|undefined
- message ->
string|undefined
- status ->
string|undefined
- IBANUsed ->
string|undefined
- lemonwayMessage ->
string|undefined
- bankReference ->
string|undefined
- virtualCreditCard ->
VirtualCreditCard|undefined
- moneyIn ->
MoneyIn|undefined
- card ->
Card|undefined
- extra ->
object|undefined
- extra.is3DSecure ->
boolean|undefined
- extra.country ->
string|undefined
- extra.authorizationNumber ->
string|undefined
- iban ->
IBAN|undefined
- getPaymentDetails -> (
userInfo
) ->Promise<Transaction>
VirtualCreditCard
- id ->
string|undefined
- number ->
string|undefined
- expirationDate ->
string|undefined
- cvx ->
string|undefined