Node.js SDK

The official @ynopay/node SDK provides Stripe-style ergonomics for the YnoPay API.

Installation

npm install @ynopay/node

Usage

import { YnoPay } from '@ynopay/node';

const ynopay = new YnoPay('sk_test_...');

// Products
const product = await ynopay.products.create({ name: 'T-shirt' });
const products = await ynopay.products.list();

// Prices
const price = await ynopay.prices.create({
  productId: product.id,
  currency: 'XOF',
  unitAmount: 5000,
});

// Payment Intents
const pi = await ynopay.paymentIntents.create({
  amount: 10000,
  currency: 'XOF',
  rail: 'orange_money',
});

// Checkout Sessions
const session = await ynopay.checkoutSessions.create({
  paymentIntentId: pi.id,
});

// Webhooks
const we = await ynopay.webhookEndpoints.create({
  url: 'https://example.com/webhooks',
  enabledEvents: ['payment_intent.succeeded'],
});

// Collector Devices
const device = await ynopay.collectorDevices.create({
  label: 'Shop Phone',
});

Configuration

const ynopay = new YnoPay({
  apiKey: 'sk_test_...',
  baseUrl: 'https://api.ynopay.com', // default
  timeout: 30000,                     // ms, default
});

Error handling

import { YnoPayError } from '@ynopay/node';

try {
  await ynopay.products.get('prod_nonexistent');
} catch (err) {
  if (err instanceof YnoPayError) {
    console.log(err.statusCode); // 404
    console.log(err.type);       // 'not_found_error'
  }
}