tamara-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.0.7 • Public • Published

nodejs SDK

Tamara Node.js SDK is a wrapper for the Tamara API.

Installation

There are two ways to install Tamara Nodejs SDK in Publish folder:

  1. Use local pacakge Copy nodejs-sdk-1.0.0.tgz to your folder. Update dependency in package.json and run npm install
    {
        "dependencies": {
            "nodejs-sdk": "file:lib/nodejs-sdk-1.0.0.tgz"
        }
    }
    
  2. Install online package from https://www.npmjs.com
    npm i tamara-sdk --save
    

Usage

1. Create configuration for sdk

Create a object or load a json file with template below:

{
    "clientVersion": "1.0.0",
    "baseUrl": "your baseUrl",
    "requestTimeoutInSecond": 0,
    "apiToken": "your token",
    "notificationPrivateKey": "your private key",
    "logger":{
      "useLog": true,
      "filePath": "./logs"
    }
}
- baseUrl (Required): Url points to api, example: https://api-sandbox.tamara.co
- requestTimeoutInSecond (Optional): timeout for request in seconds (0 or remove this field if you don't apply).
- apiToken (Required): authenticate token for api.
- notificationPrivateKey (Required): authenticate token for notification service.
- logger (Optional): configure logger for sdk (winston). 
    + Set userlog = false if you don't apply.
    + filePath: Input your out put folder otherwise remove this field, system will log in console by default.

2. Api Client

Using TamaraClientFactory with sample code:

   const apiConfiguration = require("../public/apiConfiguration.json");
   var client = TamaraClientFactory.createApiClient(apiConfiguration);
   //1. GetPaymentTypes
     var rs = client.getPaymentTypes("SA", {currency: 'SAR', amount: 200}).then((response)=>{
        console.log(response.data[0].supportedInstalments);
    }); 

3. Notification Service

1. Register notification service

Using TamaraClientFactory with sample code:

 const apiConfiguration = require("../public/apiConfiguration.json");
const notificationService = TamaraClientFactory.createNotificationService(apiConfiguration);
2. Create a endpoint to receive notification from Tamara

Sample code

       const server = createServer((request: IncomingMessage, response: ServerResponse) => {
        switch (request.url) {
            case '/testWebhook': {
              if (request.method === 'POST') {
                  var res = notificationService.processWebhook(request);
                  res.then((reponse) => {
                    //handle the response here
                  })
              }
              break;
            }
            case '/testAuthorise': {
                if (request.method === 'POST') {
                    var res = notificationService.processAuthoriseNotification(request);
                    res.then((reponse) => {
                         //handle the response here
                      })
                }
                break;
              }
            default: {
              response.statusCode = 404;
              response.end();
            }
          }
    });

API Support:

  1. GetPaymentTypes --- /checkout/payment-types
  2. CreateCheckout --- /checkout
  3. AuthoriseOrder --- /orders/{orderId}/authorise
  4. CancelOrder --- /orders/{orderId}/cancel
  5. Capture --- /payments/capture
  6. Refund --- /merchants/orders/{orderId}/refund
  7. GetOrderDetails --- /orders/{orderId}
  8. UpdateOrderReferenceId --- /orders/{orderId}/reference-id
  9. RegisterWebhook --- /webhooks
  10. RetrieveWebhook --- /webhooks/{webhookId}
  11. RemoveWebhook --- /webhooks/{webhookId}
  12. UpdateWebhook --- /webhooks/{webhookId}
  13. GetOrderDetailsByReference --- /merchants/orders/reference-id/{orderReferenceId}

Versions:

1.0.6: Updated RiskAssesstment, AuthorisedOrder response, OrderDetails, Simple refund 1.0.7: Updated Simple refund

Dependencies (6)

Dev Dependencies (1)

Package Sidebar

Install

npm i tamara-sdk

Weekly Downloads

70

Version

1.0.7

License

ISC

Unpacked Size

122 kB

Total Files

198

Last publish

Collaborators

  • cuong.huynh
  • tamara-tech-team