Node.js wrapper for Culqi web services. It is written in typescript using pure Node.js api with 0 runtime dependencies.
# Get latest version
$ npm install culqi-node
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);
})();
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.
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);
})();
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);
})();
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);
})();
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);
})();
- Create token
- Get token
- Get tokens
- Update token
- Create charge
- Get charge
- Get charges
- Update charge
- Capture charge
- Create refund
- Get refund
- Get refunds
- Update refund
- Create customer
- Get customer
- Get customers
- Update customer
- Delete customer
- Create card
- Get card
- Get cards
- Update card
- Delete card
- Create plan
- Get plan
- Get plans
- Update plan
- Delete plan
- Create subscription
- Get subscription
- Get subscriptions
- Update subscription
- Delete subscription
- Create order
- Confirm order
- Get order
- Get orders
- Update order
- Delete order
- Get event
- Get events