Algerian Payment Integration

Appibase integration brings local payment support to Frappe LMS, enabling course payments in Algerian Dinar through a localized checkout.

 · 2 min read

Algerian Payment Integration — GreyCube and Appibase

The appibase_payments app is integrating Appibase, an Algerian payment gateway, directly with Frappe LMS. The integration is designed to provide a seamless payment experience while keeping the existing learner journey unchanged. Learners can continue to browse and enroll in courses as usual, with the Appibase payment available during checkout.

Currency charged Default checkout language Webhook signature Ways a payment gets confirmed
DZD French (fr) HMAC-SHA256 2

What we built

The app plugs into the payments framework Frappe LMS already uses — the same slot Stripe, Razorpay and PayPal hook into. Once it's installed and configured, Appibase simply shows up as a normal payment gateway option.

  • An Appibase Settings screen where a Client ID, API URL and webhook secret are entered once.
  • Automatic registration as a payment gateway the moment those settings are saved — no code changes, no redeploy.
  • Prices sent to Appibase in Algerian Dinar, on a hosted checkout page that defaults to French.

How a payment happens

  1. Learner checks out — they click pay on a course or batch, right inside the LMS.
  2. Asks for a checkout link — the site authenticates with Appibase using a short-lived access token, then requests a one-time checkout session for that exact price.
  3. Learner pays on Appibase — they're redirected to Appibase's own secure page and pay in DZD; card details never touch the GreyCube site.
  4. The payment gets confirmed — instantly, or via a scheduler fallback if there's a network issue (see below).
  5. Enrollment happens automatically — the instant the payment is confirmed, the learner is enrolled. No manual step, no admin in the loop.

How a payment gets confirmed

Appibase checks for a successful payment right away. If there's a network issue and that confirmation doesn't come through, a scheduler picks it up automatically and fetches the payment status instead — so a payment is never lost, just confirmed a little later.

Diagram: a payment succeeding on Appibase reaches enrollment two ways — an instant signed webhook, or a scheduled job that fetches the status if a network issue delayed the webhook.
  • Instant check — Appibase signals success as soon as the payment completes, and the learner is enrolled immediately.
  • Scheduler fallback — if a network issue gets in the way, a scheduled job fetches the payment status on its own and confirms it automatically.

Security, by default

  • Every webhook is signed with HMAC-SHA256 and a timestamp. A request that's signed incorrectly, or more than five minutes old, is rejected outright.
  • All calls to Appibase's API use short-lived OAuth2 tokens — no long-lived password sits inside the integration.
  • A payment can't be recorded twice — a retried webhook or an overlapping reconciliation pass can't double-enroll or double-charge a learner.

Instant when the network cooperates, self-healing when it doesn't — that's the whole design brief.

Getting started

Turning it on is a three-field setup: an Appibase Client ID, the Appibase API URL, and a webhook secret, entered once on the Appibase Settings page. Save it, and Appibase appears automatically as a payment option for every paid course or batch — DZD pricing, French checkout, and both confirmation checks included.

Best ERPNext / Frappe Professional Services

Services worth the Value !


No comments yet.

Add a comment
Ctrl+Enter to add comment