# inkress-sdk

> initial version of the inkress-sdk

Latest version **0.0.4** (published 2023-11-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install inkress-sdk
pnpm add inkress-sdk
yarn add inkress-sdk
bun add inkress-sdk
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.4 |
| Published | 2023-11-24 |
| First published | 2023-07-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 23.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Sirfitz |
| Maintainers | sirfitz |

## Links

- npm: https://www.npmjs.com/package/inkress-sdk
- Repository: https://github.com/SirFitz/inkress-sdk
- Homepage: https://github.com/SirFitz/inkress-sdk#readme
- Issues: https://github.com/SirFitz/inkress-sdk/issues
- npm.io page: https://npm.io/package/inkress-sdk

## Dependencies (1)

- [jsonwebtoken](https://npm.io/package/jsonwebtoken.md) ^9.0.1

## Recent versions

- 0.0.4 (latest) — 2023-11-24
- 0.0.3 — 2023-11-24
- 0.0.21 — 2023-11-13
- 0.0.2 — 2023-07-25

## README

[![npm](https://img.shields.io/npm/v/inkress-sdk.svg?maxAge=2592000)](https://www.npmjs.com/package/inkress-sdk)
[![downloads](https://img.shields.io/npm/dt/inkress-sdk.svg?maxAge=2592000)](https://www.npmjs.com/package/inkress-sdk)

# InkressAPI Wrapper

A simple TypeScript library to interact with the Inkress API.

## Installation

### Using npm:

```bash
npm install --save inkress-sdk
```

### Using yarn:

```bash
yarn add inkress-sdk
```

Usage
Here's a simple example:

```js
//Using require
const InkressAPI = require('inkress-sdk').default;
```

```typescript
// Using import
import InkressAPI, { Order } from 'inkress-sdk'; 

const api = new InkressAPI('your_token_here'); // Replace 'your_token_here' with your actual token

api.setClient('your_client_key_here'); // Replace 'your_client_key_here' with your actual client_key

const order: Order = {
    total: 1.20,
    title: 'Package of webbies',
    kind: 'online',
    customer: {
        email: 'firsto_lasto@fleeksite.com',
        first_name: 'Firsto',
        last_name: 'Lasto',
        phone: '+13968419234',
    },
    reference_id: 'x002',
    currency_code: 'USD'
};

api.createOrder(order)
    .then(response => console.log(response))
    .catch(error => console.error(error));
```

### API
#### setToken(token: string)
Sets the authorization token to be used in API requests.

#### setClient(clientKey: string)
Sets the client key to be used in API requests.

#### createOrder(order: Order): Promise<ApiResponse | null>
Creates an order with the given details. Returns a Promise that resolves to an ApiResponse object if successful, or null if an error occurs.

#### verifyJWT(token: string, secret: string): WebhookPayload | null
Verifies a JWT from the Webhook using your secret.
```js
const jwt = 'jwt_received_from_webhook';
const decoded = api.verifyJWT(jwt, 'your_secret_key_here');
```

### Types

#### Order
Represents an order. Has the following properties:
```typescript
interface Order {
    total: number
    title: string
    kind: string
    customer: Customer;
    reference_id: string
    currency_code: string
}
```

#### ApiResponse
Represents the response from the Inkress API. Has the following properties:
```typescript
interface ApiResponse {
    state: string
    result: {
        customer: Customer
        order_details: OrderDetails
        payment_urls: PaymentURLs
    }
}
```

#### WebhookPayload
Represents the encoded JWT data from the Webhook
```typescript
interface WebhookPayload {
  provider: string;
  reference: string;
  currency: string;
  amount: number;
  client: Customer;
  status: 'pending | error | paid | partial | confirmed | cancelled | prepared | shipped | delivered | completed | returned | refunded';
}
```

#### Customer
Represents the customer encoded in the Webhook
```typescript
export interface Customer {
  name: string;
  email: string;
}
```

### Contributing
Contributions are welcome. Please open an issue or submit a pull request.

### License
MIT

```csharp
This README provides an overview of the library, explains how to install it, provides an example usage, documents the API and the types used, and invites contributions. You can add, remove, or modify sections based on the specific needs of your project.
```

---
_Source: https://npm.io/package/inkress-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
