2.1.0 • Published 9 months ago

culqi-node v2.1.0

Weekly downloads
55
License
MIT
Repository
github
Last release
9 months ago

culqi-node

Node.js wrapper for Culqi web services. It is written in typescript using pure Node.js api with 0 runtime dependencies.

npm version Build Status Coverage Status License: MIT types code style: prettier Known Vulnerabilities

Install

# Get latest version
$ npm install culqi-node

Quick start

const Culqi = require('culqi-node');
const culqi = new Culqi({
    privateKey: 'sk_test_xxxxxxxxxxxxxxxx',
});

(async () => {
    const token = await culqi.tokens.getToken({
        id: 'tkn_test_xxxxxxxxxxxxxxxx',
    });
    console.log(token.id);
})();

Common operations

In a regular flow, some other culqi frontend library such as the Android or CulqiJS, would generate the token in a "safe" way. That token is going to be the input for generating charges.

Create charge

const Culqi = require('culqi-node');
const culqi = new Culqi({
    privateKey: 'sk_test_xxxxxxxxxxxxxxxx',
});

(async () => {
    const charge = await culqi.charges.createCharge({
        amount: '10000',
        currency_code: 'PEN',
        email: 'richard@piedpiper.com',
        source_id: 'tkn_test_xxxxxxxxxxxxxxxx',
    });

    console.log(charge.id);
})();

Create charge and the capture it

const Culqi = require('culqi-node');
const culqi = new Culqi({
    privateKey: 'sk_test_xxxxxxxxxxxxxxxx',
});

(async () => {
    const charge = await culqi.charges.createCharge({
        amount: '10000',
        currency_code: 'PEN',
        email: 'richard@piedpiper.com',
        source_id: 'tkn_test_xxxxxxxxxxxxxxxx',
        capture: false,
    });
    
    // Do some other operations, such as custom self-made fraud prevention

    const capturedCharge = await culqi.charges.captureCharge({
        // chr_test_xxxxxxxxxxxxxxxx
        id: charge.id,
    });
    
    // This should be true
    console.log(capturedCharge.capture);
})();

Refund charge

const Culqi = require('culqi-node');
const culqi = new Culqi({
    privateKey: 'sk_test_xxxxxxxxxxxxxxxx',
});

(async () => {
    const refund = await culqi.refunds.createRefund({
        amount: 2000,
        charge_id: 'chr_test_xxxxxxxxxxxxxxxx',
        reason: 'Fraud',
    });
    
    console.log(refund.id);
})();

Uncommon operations

Create token

Normally you wouldn't create the token by yourself. To do so, or if any credit card data goes through your server, you will need to be PCI compliant. More information here.

In order to create a token, you will need to create a Culqi instance a bit differently. You will need to provide the pciCompliant property as true and publicKey.

const Culqi = require('culqi-node');
const culqi = new Culqi({
    privateKey: 'sk_test_xxxxxxxxxxxxxxxx',
    pciCompliant: true,
    publicKey: 'pk_test_xxxxxxxxxxxxxxxx',
});

(async () => {
    const token = await culqi.tokens.createToken({
        card_number: '4111111111111111',
        cvv: '123',
        expiration_month: '09',
        expiration_year: '2025',
        email: 'richard@piedpiper.com',
    });
    
    console.log(token.id);
})();

Available operations

Token

  • Create token
  • Get token
  • Get tokens
  • Update token

Charges

  • Create charge
  • Get charge
  • Get charges
  • Update charge
  • Capture charge

Refunds

  • Create refund
  • Get refund
  • Get refunds
  • Update refund

Customers

  • Create customer
  • Get customer
  • Get customers
  • Update customer
  • Delete customer

Cards

  • Create card
  • Get card
  • Get cards
  • Update card
  • Delete card

Plans

  • Create plan
  • Get plan
  • Get plans
  • Update plan
  • Delete plan

Subscriptions

  • Create subscription
  • Get subscription
  • Get subscriptions
  • Update subscription
  • Delete subscription

Orders

  • Create order
  • Confirm order
  • Get order
  • Get orders
  • Update order
  • Delete order

Events

  • Get event
  • Get events
2.1.0

9 months ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.5

3 years ago

2.0.4

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.0

7 years ago