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 🙏

© 2026 – Pkg Stats / Ryan Hefner

clip-sdk

v0.0.20

Published

clip sdk

Readme

Logo

SDK clip

Table of Contents

Installation

# npm install clip-sdk --registry https://npm-registry.conexa.ai

Branching

We use GitFlow branching model.

Your branch name should follow one of the following formats:

  • feature/feature-name for new features
  • fix/fix-name for bug fixes
  • chore/chore-name for chores
  • docs/docs-name for documentation
  • refactor/refactor-name for refactors
  • release/release-name for releases
  • revert/revert-name for reverts
  • test/test-name for tests
  • wip/wip-name for work in progress
  • ci/ci-name for continuous integration

Making Changes

Run yarn dev so you can compile Typescript(.ts) files in watch mode

yarn dev

Add your changes to TypeScript(.ts) files which are in the src folder. The files will be automatically compiled to JS if you are in watch mode.

Add tests for the new feature

Run yarn test:ts to make sure all Typescript tests pass.

yarn test:ts

Committing Changes

Run yarn commit to commit your changes. This will run commitizen which will guide you through the commit process.

yarn commit

Releasing

Run yarn release to release a new version of the package. This will automatically do the following:

  • Run yarn build to compile the Typescript files to JS
  • Run standard-version to generate a changelog and bump the version in package.json
    • If you ran yarn release:major it will bump the major version
    • If you ran yarn release:minor it will bump the minor version
    • If you ran yarn release:patch it will bump the patch version
  • Run git push to push the changes to the remote repository
  • Run git push --tags to push the changes to the remote repository
  • Run npm publish to publish the package to the npm registry

Committing Rules

We use The Conventional Commits specification. It is a convention that provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.

Commit types required lowercase

feat – a new feature is introduced with the changes

fix – a bug fix has occurred

chore – changes that do not relate to a fix or feature and don't modify src or test files (for example updating dependencies)

refactor – refactored code that neither fixes a bug nor adds a feature

docs – updates to documentation such as a the README or other markdown files

style – changes that do not affect the meaning of the code, likely related to code formatting such as white-space, missing semi-colons, and so on.

test – including new or correcting previous tests

perf – performance improvements

ci – continuous integration related

build – changes that affect the build system or external dependencies

revert – reverts a previous commit

echo ": some message"    # fails
echo "foo: some message" # fails
echo "FIX: some message" # fails
echo "fix: some message" # passes

Scope optional lowercase

echo "fix(SCOPE): some message" # fails
echo "fix(scope): some message" # passes

Description required start in lowercase not ending in "."

echo "fix:" # fails
echo "fix: some message." # fails
echo "fix(scope): Some message" # fails
echo "fix(scope): some message" # passes
echo "fix(scope): some Message" # passes

Examples:

echo "fix(.gitignore): added node_modules folder" 
echo "fix(controllers/auth): added frontend redirect params"
echo "revert(services/email): nodemailer version update"

Project Structure

.
├── src                               # Source files
│   ├── services                      # Services
│   │   ├── auth.service              # Authentication
│   │   ├── ....                      # Other services, for ex. checkout
│   ├── lib                           # General purpose utils and helpers
│   ├── index.ts                      # Package entry file
├── package.json
└── README.md

Possible Statuses

| Property | Description | | :---------- | :------------------------------- | | CHECKOUT_CREATED | The checkout has been created and is ready for the customer to complete the payment. | | CHECKOUT_EXPIRED | The checkout has expired and can no longer be used to process a payment. | | CHECKOUT_CANCELED | The checkout has been canceled and can no longer be used to process a payment. | | CHECKOUT_COMPLETED | The checkout has been completed and the payment has been processed. | | CHECKOUT_PENDING | The checkout is pending and the payment has not yet been processed. |

Methods Reference

Initialization

The SDK exports a function called setAppConfig. Is used to initialize the API SDK and set global variables that will be used throughout the SDK. It takes an object with the following properties as input:

| Property | Type | Description | | :---------- | :------- | :------------------------------- | | env | string | Required. production / stage / development | | debug | boolean | Optional. true / false | | userAgent | string | Optional. User agent |

import { setAppConfig } from 'clip-sdk';

setAppConfig({
	env: process.env.NODE_ENV,
	debug: true,
	userAgent: 'Tiendanube Client v1.0.0',
});

Instantiation

The main exported class of the API SDK is ClipSDK. This class provides access to the various services and functionality provided by the SDK, such as creating checkouts and retrieving transaction information.

To use the ClipSDK class, you will need to instantiate it with a token that is used to authenticate API requests. You can obtain a token by calling the authenticate function described below.

Once you have a token, you can create an instance of the ClipSDK class by calling the constructor with the token as an argument. For example:

import { ClipSDK, authenticate } from 'clip-sdk';

const token = await authenticate(apiKey, apiSecret);

const client = new ClipSDK(token);

// Now you can use the client to access the services
const transactions = await client.Transaction.getTransactions();

Authentication

The authenticate function returns a Promise that resolves with a string representing the token if the authentication is successful. If the authentication fails, the Promise will reject with an error.

Parameters

| Parameter | Type | Description | | :---------- | :------- | :------------------------------- | | apiKey | string | Required. Merchant API Key | | apiSecret | string | Required. Merchant API Secret |

import { authenticate } from 'clip-sdk';

try {
	const token = await authenticate(apiKey, apiSecret);
} catch (error) {
	throw new Error(httpStatus.UNAUTHORIZED)
}

Create Checkout

This method is used to create a new checkout, which is a payment request that can be used to process a payment.

The createCheckout function takes the following arguments as input:

Parameters

| Parameter | Type | Description | | :---------- | :------- | :------------------------------- | | checkoutData | object | Required. Checkout data | | environment | string | Optional. Environment to use (production / stage / development) |

Parameters Checkout Data

| Property | Type | Description | | :---------- | :------- | :------------------------------- | | amount | number | Required. Amount of the payment in the currency specified by the currency property. | | currency | string | Required. Currency of the payment (e.g., "USD", "EUR"). | | purchase_description | string | Required. Description of the purchase being made. | | redirection_url | object | Required. URLs to redirect the customer to after the checkout process is complete. | | redirection_url.success | string | Required. URL to redirect the customer to upon successful completion of the checkout process. | | redirection_url.error | string | Required. URL to redirect the customer to if there is an error during the checkout process. | | redirection_url.default | string | Required. URL to redirect the customer to if the customer cancels the checkout process. | | metadata | object | Required. Additional metadata for the checkout. | | metadata.me_reference_id | string | Required. Reference ID for the checkout provided by the merchant. | | metadata.customer_info | object | Required. Information about the customer. | | metadata.customer_info.name | string | Required. Name of the customer. | | metadata.customer_info.email | string | Required. Email address of the customer. | | metadata.customer_info.phone | string | Required. Phone number of the customer. | | webhook_url | string | Required. Instant payment notification from Clip | | billing_address | string | Required. Buyer billing address | | billing_address.street | string | Required. | | billing_address.outdoor_number | string | Required. | | billing_address.interior_number | string | Required. | | billing_address.locality | string | Required. | | billing_address.city | string | Required. | | billing_address.state | string | Required. | | billing_address.zip_code | string | Required. | | billing_address.country | string | Required. | | billing_address.reference | string | Required. | | billing_address.between_streets | string | Required. | | billing_address.floor | string | Required. | | shipping_address | string | Optional. Buyer shipping address | | shipping_address.street | string | Optional. | | shipping_address.outdoor_number | string | Optional. | | shipping_address.interior_number | string | Optional. | | shipping_address.locality | string | Optional. | | shipping_address.city | string | Optional. | | shipping_address.state | string | Optional. | | shipping_address.zip_code | string | Optional. | | shipping_address.country | string | Optional. | | shipping_address.reference | string | Optional. | | shipping_address.between_streets | string | Optional. | | shipping_address.floor | string | Optional. | | source | string | Required. Source of request |

Response

| Property | Type | Description | | :---------- | :------- | :------------------------------- | | payment_request_id | string | ID of the payment request. | | payment_request_url | string | URL of the payment request page. | | object_type | string | Type of object being returned (e.g., "checkout"). | | status | string | Current status of the checkout. | | last_status_message | string | Last status message for the checkout. | | created_at | string | Date and time at which the checkout was created. | | modified_at | string |Date and time at which the checkout was last modified. | | expired_at | string | Date and time at which the checkout will expire. |

import { ClipSDK } from 'clip-sdk';

const client = new ClipSDK(token);

const checkoutData = {
  "amount": 3,
  "currency": "MXN",
  "purchase_description": "Hamburguesas 2x1 + 50% descuento",
  "redirection_url": {
     "success": "https://merchant_ecoomerce.com/redirection/success",
     "error": "https://merchant_ecoomerce.com/redirection/error",
     "default": "https://merchant_ecoomerce.com/redirection/default"
  },
  "metadata": {
    "me_reference_id": "OID123456789",
    "customer_info": {
      "name": "Alejandro Lee",
      "email": "[email protected]",
      "phone": 5520686868
    }
    "billing_address": {
      "street": "streetTest",
      "outdoor_number": "23a",
      "interior_number": "1234",
      "locality": "colonyTest",
      "city": "cityTest",
      "state": "stateTest",
      "zip_code": "54117",
      "country": "cuntryTest",
      "reference": "referenceTest",
      "between_streets": "street 1 and street 2",
      "floor": "floorTest"
    },
    "shipping_address": {
      "street": "streetTest",
      "outdoor_number": "23a",
      "interior_number": "1234",
      "locality": "colonyTest",
      "city": "cityTest",
      "state": "stateTest",
      "zip_code": "54117",
      "country": "cuntryTest",
      "reference": "referenceTest",
      "between_streets": "street 1 and street 2",
      "floor": "floorTest"
    },
    "source": "tiendanube"
   },
   "webhook_url": "https://merchant_ecoomerce.com/api/v1/webhooks/ipn";
}

const checkout = await client.Checkout.createCheckout(checkoutData);

Get Checkout

This method is used to retrieve information about a checkout that was previously created. The getCheckout function takes the following arguments as input:

Parameters

| Property | Type | Description | | :---------- | :------- | :------------------------------- | | paymentRequestId | string | Required. ID of the payment request. |

Response

| Property | Type | Description | | :---------- | :------- | :------------------------------- | | payment_request_id | string | ID of the payment request. | | payment_request_url | string | URL of the payment request page. | | object_type | string | Type of object being returned (e.g., "checkout"). | | status | string | Current status of the checkout. | | last_status_message | string | Last status message for the checkout. | | created_at | string | Date and time at which the checkout was created. | | modified_at | string | Date and time at which the checkout was last modified. | | expired_at | string | Date and time at which the checkout will expire. | | amount | number | Amount of the payment in the currency specified by the currency property. | | currency | string | Currency of the payment (e.g., "USD", "EUR"). | | purchase_description | string | Description of the purchase being made. | | redirection_url | object | URLs to redirect the customer to after the checkout process is complete. | | redirection_url.success | string | URL to redirect the customer to upon successful completion of the checkout process. | | redirection_url.error | string | URL to redirect the customer to if there is an error during the checkout process. | | redirection_url.default | string |URL to redirect the customer to if the customer cancels the checkout process. | | metadata | object | Additional metadata for the checkout. | | metadata.me_reference_id | string | Reference ID for the checkout provided by the merchant. | | metadata.customer_info | object | Information about the customer. | | metadata.customer_info.name | string | Name of the customer. | | metadata.customer_info.email | string | Email address of the customer. | | metadata.customer_info.phone | string | Phone number of the customer. |

import { ClipSDK } from 'clip-sdk';

const client = new ClipSDK(token);

const checkout = await client.Checkout.getCheckout(paymentRequestId);