The official Magpie Node.js library for seamless integration with Magpie's payment processing APIs. Built with TypeScript and designed for modern Node.js applications.
Install the package using your preferred package manager:
npm install @magpieim/magpie-node
# or
yarn add @magpieim/magpie-node
# or
pnpm add @magpieim/magpie-node
- Node.js 18.0.0 or higher
- TypeScript 4.5+ (for TypeScript projects)
Initialize the Magpie client with your secret key from the Magpie Dashboard:
const Magpie = require('@magpieim/magpie-node');
const magpie = new Magpie('sk_test_...');
// Create a customer
magpie.customers.create({
name: 'John Doe',
email: 'john@example.com',
})
.then(customer => console.log('Customer created:', customer.id))
.catch(error => console.error('Error:', error.message));
import Magpie from '@magpieim/magpie-node';
const magpie = new Magpie('sk_test_...');
// Create a customer with full type safety
const customer = await magpie.customers.create({
name: 'John Doe',
email: 'john@example.com',
phone: '+63917123456',
metadata: {
source: 'website',
campaign: 'summer-2024'
}
});
console.log('Customer created:', customer.id);
// Create a charge
const charge = await magpie.charges.create({
amount: 50000, // ₱500.00 in centavos
currency: 'php',
source: 'src_1234567890',
description: 'Payment for Order #1234'
});
// Create a hosted checkout page
const session = await magpie.checkout.sessions.create({
line_items: [{
name: 'T-shirt',
amount: 2000,
currency: 'php',
quantity: 1
}],
success_url: 'https://example.com/success',
cancel_url: 'https://example.com/cancel'
});
// Verify and handle webhooks
const event = magpie.webhooks.constructEvent(
req.body,
req.headers['magpie-signature'],
webhookSecret
);
if (event.type === 'charge.succeeded') {
console.log('Payment succeeded!', event.data.object);
}
const magpie = new Magpie('sk_test_...', {
timeout: 10000,
maxNetworkRetries: 3,
debug: true
});
try {
const charge = await magpie.charges.create({...});
} catch (error) {
if (error instanceof Magpie.AuthenticationError) {
console.log('Invalid API key');
} else if (error instanceof Magpie.ValidationError) {
console.log('Invalid parameters:', error.errors);
}
}
Full TypeScript support with comprehensive type definitions:
const customer: Magpie.Customer = await magpie.customers.create({
name: 'John Doe',
email: 'john@example.com'
});
This library is maintained by the Magpie team:
- Jerick Coneras - @donjerick - Lead Maintainer
- Magpie Team - support@magpie.im
For feature requests and enhancements, please open an issue.
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: https://docs.magpie.im
- Support: support@magpie.im
- Issues: GitHub Issues