culqi-node
v2.1.0
Published
Typescript wrapper for Culqi web services developed for Node.js with 0 runtime dependencies
Downloads
327
Maintainers
Readme
culqi-node
Node.js wrapper for Culqi web services. It is written in typescript using pure Node.js api with 0 runtime dependencies.
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: '[email protected]',
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: '[email protected]',
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: '[email protected]',
});
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