The Simiz NestJS module provides a fully typed, dependency-injection-friendly way to integrate mobile money payments into your NestJS application. It includes a service for creating transactions, a guard for webhook signature verification, and DTOs for request validation.

Prerequisites

You need your Simiz API keys before configuring the module. Find them in Dashboard > Settings > API Keys.

Installation

1

Install the packages

2

Import the module

Register the Simiz module in your AppModule:
Or use forRootAsync for dynamic configuration:
3

Set environment variables

Usage

Inject the service

Webhook controller

The SimizWebhookGuard automatically verifies the HMAC-SHA256 signature.

DTOs

The package includes built-in DTOs for request validation:

Supported payment methods

Supported currencies

Webhook events

Test mode

Set the following environment variables:
The module connects to sandbox.api.simiz.io and no real money is charged.

Full sandbox documentation

See all test numbers and scenarios in the Sandbox Testing guide.

Troubleshooting

Solutions:
  • Verify SIMIZ_WEBHOOK_SECRET is set correctly
  • Ensure no middleware is parsing the body before the guard (use raw body)
  • Enable raw body in your NestJS app: app.useBodyParser('raw', { type: 'application/json' })

Next steps

Node.js SDK

Explore the underlying Node.js SDK for advanced usage.

Webhook Verification

Learn about webhook configuration and signature verification.

API Reference

Explore the full Simiz API.

Support

Need help? Contact our support team.

Changelog

Version history