Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.usepaykit.dev/llms.txt

Use this file to discover all available pages before exploring further.

npm install @paykit-sdk/monnify

Setup

import { PayKit } from '@paykit-sdk/core';
import { monnify } from '@paykit-sdk/monnify';

export const paykit = new PayKit(monnify());
Required env vars:
MONNIFY_API_KEY=MK_TEST_...
MONNIFY_SECRET_KEY=your-secret-key
MONNIFY_SANDBOX=true

Webhooks

Enable these events in your Monnify dashboard:
  • SUCCESSFUL_TRANSACTION
  • SUCCESSFUL_TRANSACTION_OFFLINE
  • REJECTED_PAYMENT
  • SETTLEMENT
  • MANDATE_UPDATE
  • SUCCESSFUL_REFUND
  • FAILED_REFUND
const webhook = paykit.webhooks
  .setup({ webhookSecret: process.env.MONNIFY_WEBHOOK_SECRET! })
  .on('payment.created', async event => { /* ... */ })
  .on('payment.updated', async event => { /* ... */ });

await webhook.handle({
  body: rawBody,
  headersAsObject: Object.fromEntries(request.headers),
  fullUrl: request.url,
});

Raw Monnify events

paykit.webhooks
  .setup({ webhookSecret: process.env.MONNIFY_WEBHOOK_SECRET! })
  .on('monnify.SUCCESSFUL_TRANSACTION', async event => {
    // typed against Monnify's API types
  });