Skip to main content

Nomba Subscriptions Engine

In a nutshell

Nomba Subscriptions Engine is a managed recurring billing layer powered by Nomba. Businesses do not need to bring their own Nomba credentials. The engine processes payments through the platform’s Nomba integration, maps every transaction to the correct tenant, and forwards normalized subscription events to each business through signed webhooks. Use the Subscriptions Engine to add recurring billing to your product without building plan management, billing cycles, invoice tracking, tokenized-card renewals, and webhook delivery yourself.
Nomba is treated as an internal payment provider. You integrate with the Subscriptions Engine API, not directly with Nomba.

What you can do

  • Create subscription plans.
  • Create and retrieve customers.
  • Create and retrieve subscriptions.
  • Initialize Nomba Checkout for card-backed subscription payments.
  • Save reusable tokenized card references after checkout.
  • Collect future subscription renewals using saved card tokens.
  • Track invoice and payment states.
  • Receive normalized merchant webhooks.

How payments flow

Customer
  -> Your app
  -> Subscriptions Engine API
  -> Nomba Checkout / tokenized card charge
  -> Payment confirmation
  -> Invoice and subscription update
  -> Normalized webhook to your system

Subaccount settlement model

The engine processes payments through the platform’s Nomba integration and maps each tenant to a Nomba account or subaccount. Payment requests include account and metadata information so successful payments can be associated with the correct business, customer, subscription, and invoice.
Customer pays
  -> Engine creates a Nomba checkout or charge request
  -> Tenant account metadata routes the merchant share
  -> Platform fee is tracked by the platform
  -> Invoice and payment records are updated
  -> Your webhook endpoint receives billing events

API style

The API uses JSON request and response bodies. Protected endpoints use an API key header:
X-Api-Key: sub_xxx
Responses use a standard envelope:
{
  "status": "success",
  "message": "Plan created successfully",
  "data": {}
}

Next steps