How to Accept BaridiMob Payments on Your Website (and Confirm Them Automatically)

Updated · 7 min read · WadieaPay

Short answer

Show your CCP account (RIP) and the order amount at checkout, ask the customer for the reference number of their BaridiMob transfer, then confirm it from your server with the free baridimob SDK: it signs in to your BaridiMob account once, searches your history for that reference and tells you whether the payment arrived, is incoming and has the right amount.

How a BaridiMob payment works for a shop

  1. At checkout, your site shows your CCP account (RIP) and the exact amount.
  2. The customer sends the money from the BaridiMob app. BaridiMob gives them a 12-digit reference number.
  3. The customer types that reference into your site.
  4. Your server checks your BaridiMob history and marks the order as paid if the transfer is there.

Receiving the transfer is free for you; the customer pays the BaridiMob fee (12 to 24 DA per transfer). The only problem is step 4: done by hand, it is slow and receipt screenshots can be faked.

1. Install the SDK

WadieaPay's core is the open-source baridimob SDK (MIT license), available for TypeScript/JavaScript, Python and Dart/Flutter with the same features and names.

npm install baridimob        # Node.js 18+
pip install baridimob        # Python
flutter pub add baridimob    # Dart / Flutter

2. Sign in once

Sign in with your BaridiMob credentials. The first time on a new server, BaridiMob confirms the device with an SMS code; the session is then saved and reused, and renewed automatically when it expires.

import { createBaridiMob, fileStorage } from 'baridimob';

const bm = createBaridiMob({ storage: fileStorage('./.baridimob/session.json') });

const result = await bm.auth.login({ login: 'your-login', password: 'your-password' });
if (result.state === 'otp_required') {
  await bm.auth.requestDeviceOtp();      // an SMS code is sent to your phone
  await bm.auth.confirmDevice('123456'); // the code you received
}

3. Verify a payment by reference and amount

const check = await bm.payments.verifyPayment({
  refNum: '012345678901', // reference given by the customer
  amount: 2500,           // expected amount in DA
});

if (check.verified) {
  // payment received: mark the order as paid
} else {
  console.log(check.reason); // not_found, not_incoming, amount_mismatch or duplicate
}
ResultMeaningWhat to do
okFound, incoming, amount matchesConfirm the order
not_foundNo transfer with this reference yetAsk the customer to check the reference, or retry a little later
not_incomingThe transaction exists but is not money receivedRefuse
amount_mismatchThe amount differs from the orderAsk for the difference or refund
duplicateSeveral incoming transfers share this referenceCheck by hand

By default the search covers the last 30 days of your first account; options let you choose another account or period. Store every confirmed reference in your database and refuse it if it comes back, so one transfer cannot pay two orders.

4. Keep it secure

  • The saved session is a live credential. Never commit it, share it or log it; encrypt it at rest in production.
  • Reading your history never needs an SMS code. Moving money always requires a code that you pass explicitly, so a stolen session alone cannot send money.
  • The SDK refuses plain HTTP, except for localhost during development.
  • Run it on your own server: nothing passes through WadieaPay.

Limits to know

The SDK is an independent project, not affiliated with Algérie Poste. BaridiMob can change its service at any time, which can break it, so keep the SDK up to date and keep a manual fallback. If your customers mostly pay by card, compare card payment gateways in Algeria.

Frequently asked questions

Can I accept BaridiMob payments without a payment gateway?

Yes. Customers transfer money to your CCP account from the BaridiMob app, and you confirm each transfer by its reference number. WadieaPay's free baridimob SDK does the confirmation automatically from your server.

Is there a WooCommerce or Shopify plugin?

Not yet. Today you integrate the SDK in your backend (Node.js, Python or Dart). A plugin needs only a few calls: verify the reference and amount, then mark the order as paid.

Does WadieaPay hold my money?

No. Money goes straight from the customer's BaridiMob account to your CCP account. The SDK only reads your history to confirm the transfer, and it runs on your own server.

What if the customer types a wrong reference?

The check returns not_found. Ask the customer to copy the 12-digit reference from the BaridiMob receipt, or retry a few minutes later if the transfer was just made.

Accept BaridiMob payments for free

Install the open-source SDK and confirm every transfer automatically, from your own server.

Sources

More guides