paystack-products

Paystack Products API — create and manage product inventories on your integration. Track stock quantities, set pricing, and link products to payment pages. Use this skill whenever building e-commerce product catalogs, managing inventory with Paystack, creating shippable products, tracking stock levels and sold quantities, or adding products to payment pages. Also use when you see references to /product endpoint, PROD_ prefixed codes, product stock management, or product pricing in subunits.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "paystack-products" with this command: npx skills add rexedge/paystack/rexedge-paystack-paystack-products

Paystack Products

The Products API lets you create and manage product inventories on your integration.

Depends on: paystack-setup for the paystackRequest helper.
Related: paystack-payment-pages for adding products to hosted pages.

Endpoints

MethodEndpointDescription
POST/productCreate a product
GET/productList products
GET/product/:idFetch a product
PUT/product/:idUpdate a product

Create Product

ParamTypeRequiredDescription
namestringYesProduct name
descriptionstringYesProduct description
priceintegerYesPrice in subunits (kobo/pesewas)
currencystringYesCurrency code
unlimitedbooleanNotrue for unlimited stock (default: false)
quantityintegerNoStock count (when unlimited is false)
const product = await paystackRequest<{
  product_code: string;
  slug: string;
  id: number;
}>("/product", {
  method: "POST",
  body: JSON.stringify({
    name: "Wireless Headphones",
    description: "Premium noise-cancelling wireless headphones",
    price: 2500000, // ₦25,000
    currency: "NGN",
    unlimited: false,
    quantity: 50,
  }),
});
// product.data.product_code → "PROD_ddot3upakgl3ejt"

List Products

const products = await paystackRequest("/product?perPage=20&page=1");

// Each product includes:
// - id, name, description, product_code, slug
// - currency, price, quantity, quantity_sold
// - active, in_stock, unlimited

Fetch Product

const product = await paystackRequest(`/product/${productId}`);

Update Product

await paystackRequest(`/product/${productId}`, {
  method: "PUT",
  body: JSON.stringify({
    name: "Wireless Headphones Pro",
    description: "Updated premium headphones",
    price: 3000000,
    currency: "NGN",
    unlimited: false,
    quantity: 100,
  }),
});

Product + Payment Page Flow

// 1. Create products
const headphones = await paystackRequest("/product", {
  method: "POST",
  body: JSON.stringify({
    name: "Headphones",
    description: "Wireless headphones",
    price: 2500000,
    currency: "NGN",
    quantity: 50,
  }),
});

const case_ = await paystackRequest("/product", {
  method: "POST",
  body: JSON.stringify({
    name: "Headphone Case",
    description: "Protective carrying case",
    price: 500000,
    currency: "NGN",
    quantity: 100,
  }),
});

// 2. Create a product payment page
const page = await paystackRequest("/page", {
  method: "POST",
  body: JSON.stringify({
    name: "Audio Shop",
    type: "product",
    description: "Premium audio equipment",
  }),
});

// 3. Add products to the page
await paystackRequest(`/page/${page.data.id}/product`, {
  method: "POST",
  body: JSON.stringify({
    product: [headphones.data.id, case_.data.id],
  }),
});
// Page available at: https://paystack.com/pay/{slug}

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

paystack-charges

No summary provided by upstream source.

Repository SourceNeeds Review
General

paystack-webhooks

No summary provided by upstream source.

Repository SourceNeeds Review
General

paystack-setup

No summary provided by upstream source.

Repository SourceNeeds Review