Developers

Developers

Build on DzWallet

Official libraries, plugins and API files to accept payments in minutes. Start in test mode, go live when you are ready.

composer require dzwallet/laravel-sdk
$payment = DzWallet::initiatePayment([
    'identifier'  => $order->identifier,
    'amount'      => $order->total,
    'details'     => 'Order #' . $order->id,
    'ipn_url'     => route('dzwallet.ipn'),
    'success_url' => route('thanks'),
    'cancel_url'  => route('cart'),
    'site_name'   => 'My shop',
    'customer'    => $customer,   // first_name, last_name, email, mobile
]);

return redirect($payment->redirectUrl);

Quick start

  1. Create a merchant account and copy your test keys from the API Key page.
  2. Install a library below, or call the API directly.
  3. Create a payment on your server and redirect the customer to the returned link.
  4. Confirm the result with the signed IPN or a status check, never with the success page alone.

Libraries and plugins

Laravel

Available

Official package for Laravel 10, 11 and 12: payments, signed IPN route, events.

composer require dzwallet/laravel-sdk

PHP

Available

Plain PHP 7.4+ client, no framework needed.

composer require dzwallet/php-sdk

Node.js

Available

Node 18+ client with TypeScript types and an Express example.

npm install dzwallet-node

Python

Available

Python 3.8+ client for Django, Flask and FastAPI.

pip install dzwallet
In testing

Flutter

Checkout page and payment status checker for mobile apps. The secret key stays on your server.

WooCommerce

WordPress plugin: DzWallet appears as a payment method at checkout.

PrestaShop

PrestaShop module with signed IPN and order confirmation.

API files

OpenAPI 3.1Machine readable description of every endpoint and of the IPN notification. Import it into Swagger, Insomnia or your code generator.
openapi.yaml
PostmanReady to use collection with test and live variables. Try every request without writing code.
Postman

Security rules

  • Keep your secret key on your server only. Never put it in a mobile app, a web page or a public repository.
  • Do not trust the success page redirect. Confirm with the signed IPN or a server side status check.
  • Check that the identifier and the amount match your own order, and ignore repeated notifications.
  • If a payment request times out, do not create it again. Check its status first.

We may use cookies or any other tracking technologies when you visit our website, including any other media form, mobile website, or mobile application related or connected to help customize the Site and improve your experience. learn more

Allow