Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript. Learn more »

oriskami

1.23.0 • Public • Published

Oriskami node.js bindings

npm version Build Status Inline docs

This library helps interact with Oriskami's API, a risk management intelligence to detect and manage transactions having a risk. Oriskami works by:

  1. fusioning your transaction data with external data providers;
  2. applying filters like whitelists, blacklists, rules, or risk scores trained with machine learning; and
  3. triggering notifications when a risk is detected (e-mail, slack, signed webhooks, etc.).

For a quick start see below, otherwise here are few links:

Quick Start: Five steps

  1. Install the binding:
npm install --save oriskami
  1. Setup your access token:
var Oriskami    = require("oriskami")
  , oriskami    = new Oriskami("YOUR_API_ACCESS_TOKEN", "API_VERSION")
  1. Bootstrap your account with historical data (EventPast; not analyzed):
oriskami.EventPast.create({
  "parameters"  :{
    "id": 16646 
  , "email": "abc@gmail.com"
  , "names": "M Abc"
  , "account_creation_time": "2017-05-17 21:50:00"
  , "account_id": "10000"
  , "account_n_fulfilled": "1"
  , "account_total_since_created": "49.40"
  , "account_total_cur": "EUR"
  , "invoice_time": "2017-05-17 21:55:00"
  , "invoice_address_country": "France"
  , "invoice_address_place": "75008 Paris"
  , "invoice_address_street1": "1 Av. des Champs-Élysées"
  , "invoice_name": "M ABC"
  , "invoice_phone1": "0123456789"
  , "invoice_phone2": null
  , "transport_date": "2017-05-18 08:00:00"
  , "transport_type": "Delivery"
  , "transport_mode": "TNT"
  , "transport_weight": "9.000"
  , "transport_unit": "kg"
  , "transport_cur": "EUR"
  , "delivery_address_country": "France"
  , "delivery_address_place": "75008 Paris"
  , "delivery_address_street1": "1 Av. des Champs-Élysées"
  , "delivery_name": "M ABC"
  , "delivery_phone1": "0123450689"
  , "customer_ip_address": "1.2.3.4"
  , "pmeth_origin": "FRA"
  , "pmeth_validity": "0121"
  , "pmeth_brand": "MC"
  , "pmeth_bin": "510000"
  , "pmeth_3ds": "-1"
  , "cart_products": [ " Product ref #12345 ", " Product ref #45678 " ]
  , "cart_details": [{
      "name": "Product ref #12345"
    , "pu": "10.00"
    , "n": "1"
    , "reimbursed": " 0"
    , "available": "1"
    , "amount": "10.00"
    , "cur": "EUR"
    }, {
      "name": "Product ref #45678"
    , "pu": "20.00"
    , "n": "2"
    , "reimbursed": " 0"
    , "available": "1"
    , "amount": "40.00"
    , "cur": "EUR"
    }]
  , "cart_n": "15000"
  , "order_payment_accepted": "2017-05-17 22:00:00"
  , "amount_pmeth": "ABC Payment Service Provider"
  , "amount_discounts": 0.00
  , "amount_products": 20.00
  , "amount_transport": 10.00
  , "amount_total": 30.00
  , "amount_cur": "EUR"
  }
 
}, (err, res) => /* callback */)
  1. Label events for which the risk (is_loss) has materialized:
oriskami.EventLabel.update({
  "id" : "1"
, "label": "is_loss"
, "value": "false" 
}, (err, res) => /* process results */)
  1. Send live Events:
oriskami.events.create({ }, (err, res) => /* process results */)

Then you will get notified when a risk is detected.

Events API: Open Beta (public preview)

Resource C R U D L Test Specs
Event data Event {} 123 123, {} 123 {} See on github
EventPast {} {} See on github
EventLabel 123 123, {} 123 {} See on github
EventLastId {} See on github
  • C: Create
  • R: Retrieve
  • U: Update
  • D: Delete
  • L: List
  • 123: resource id
  • {}: JSON with query parameters

Parsing incoming webhooks

Oriskami signs its webhooks according to the Json Web Token standard www—here is how to parse incoming requests with express/restify:

var Oriskami  = require("oriskami")
  , oriskami  = new Oriskami()
 
oriskami.getPublicKey((err) => {  /* Retrieve public key (async)                */ 
  app.post("/webhook/oriskami"    /* Endpoint defined as a notification         */
  , oriskami.webhook()            /* Middleware that parses the Json Web Tokens */
  , (req, res, next) => {
    console.log(req.json)
  })
}

Code snippets and filter parameters

A few code snippets:

Action Code snippet
1. Change token oriskami.set("auth", "your-api-token")
2. Add new resource oriskami.extend("resourceName", "resourcePath")
3. Change timeout oriskami.set("timeout", 20000) // in ms
4. To disable signing of JSON payloads on nodejs >= v5 oriskami.set("unsigned", true)

Filters available for most resources (list).

Filter Default Example Description
limit 10 {"limit":10} At most 10 returned results
gt {"id":{"gt":10}} id greater than 10
gte {"id":{"gte":10}} id greater than or equal
lt {"id":{"lt":10}} id less than
lte {"id":{"lte":10}} id less than or equal

Development

To run the tests, you will need a Oriskami test API key (from your Oriskami dashboard)

export ORISKAMI_TEST_TOKEN="your-test-api-key"
npm install -g mocha
npm test

Note: on Windows, use SET instead of export for setting the ORISKAMI_TEST_TOKEN environment variable.

Issues and feature requests

Author

install

npm i oriskami

Downloadsweekly downloads

0

version

1.23.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability