TM Forum Open API
DCB Recurring API
Bill subscriptions to the mobile account
DCB is an online mobile payment method that allows users to make purchases directly charged to their mobile phone bill or prepaid sim card.
- Streaming
- Gaming
- Memberships
What you can do with this API
Read the full API overview
Direct Carrier Billing Details
What is Direct Carrier Billing?
Direct Carrier Billing is a type of online payment that allows consumers to charge the cost of a purchase to their phone bill. To put simply, it is a mechanism which enables consumers to make transactions while adding its charge to their mobile phone bills. The best part about this type of payment is that it is applicable not only to smart phone users but also all feature phone users.
The emergence of Direct Carrier Billing can be witnessed back at times when consumers opted for ringtone and wallpaper services on their feature phones. Unlike those days, DCB is now completely extensive in its usability and compatible to buy content on any digital platform. It allows users to purchase products and services across multiple channels, ranging from desktop computers, smartphones, smart TVs, to gaming consoles. Adding on to that, they can also buy a music streaming subscription on their device.
Consumers can often misinterpret DCB with different kinds of mobile payments such as Near-field communication (NFC) solutions and mobile wallets. One of the key differences between these traditional payment methods and DCB is DCB’s independence on banking infrastructure to complete a transaction. Making a payment through it is as simple as that of entering a phone number.
DCB is for sure a keeper for businesses that aim to attain traction and make consumers’ billing process a simple task. Along with the technical superiority that it has, it is lucrative for businesses as well as for consumers.
Easy to use
DCB is a payment mode designed to simplify the payment process. It does not require one to add lengthy details and sensitive information related to the payment. Ease of using is one of the most important traits that it offers to its consumers.
Easy Accessibility
Since DCB is a payment method which is directly linked to consumers’ mobile phone bill, it completely eliminates the need to sign in each time one makes a purchase. Besides that, it supports smartphones, tablets, and also feature phones making it widely usable and accessible.
Entrusted Payment Method
Consumers find it comparatively easy to trust this mode of payment as all their payments are processed through their telecom operators. Based on the length of the service used by consumers provided by their telecom operators, the consumer can trust them with their private details. Owing to the technological power of DCB, it has deployed a great deal of security system which ensures high-level payment security.
Mobile phones are now part of the simplest everyday tasks, and that use keeps growing as the telecom industry evolves. Paying for digital services from the mobile account is a natural next step.
That makes Direct Carrier Billing a simple, widely accessible way to pay, and a strong lever for customer satisfaction and experience.
Simplify payment procedure with Direct Carrier Billing today!
Benefits and Features
- Let customers pay for subscriptions from their mobile account, with no card or bank account needed
- Reach customers who don't have a bank card
- Fewer abandoned payments: customers confirm with their phone number instead of typing card details
- Charge recurring subscriptions automatically on your billing schedule
- Optionally confirm each charge with a one-time code (OTP) the customer enters
- One API for the Ooredoo operators in the markets listed on this page
Questions about the DCB Recurring API
What can I do with the DCB Recurring API?
DCB is an online mobile payment method that allows users to make purchases directly charged to their mobile phone bill or prepaid sim card.
- Charge a recurring subscription payment (
POST /adjustBalance)
Which inputs does each call to the DCB Recurring API need?
POST /adjustBalance: requiresamount,bucket,usageType; headerstransactionId,countryCode
Every call also needs Authorization: Bearer <access_token>. The API reference on this page shows each field's type and an example request.
What does the DCB Recurring API return?
POST /adjustBalancereturns HTTP 201 withid,href,status,amount,bucket,usageType
Responses are JSON.
How do I authenticate with the DCB Recurring API?
- Call
POST https://api.ooredoo.com/tmf-api/oauth/v4/generateTokenwithclient_id,client_secretin the headers. Sendgrant_type,msisdn,chargein the body. Use the client ID and secret of your app. - The response contains
access_token,token_type,expires_in,consented_on,createdAt,expiredAt. - Send
Authorization: Bearer <access_token>on each call until the token expires, then request a new one.
Which errors can the DCB Recurring API return?
- 400: Bad Request
- 401: Unauthorized
- 403: Forbidden
- 405: Method Not allowed
- 409: Conflict
- 422: Business Rule Exception
- 500: Internal Server Error
On 401, request a new access token and retry.
Where is the DCB Recurring API available?
DCB Recurring is available in Algeria, Maldives, Qatar, Tunisia, Kuwait, Oman, Palestine and Iraq.
Which standard does the DCB Recurring API follow?
It follows the TM Forum Open API standard used across the telecom industry. See our TM Forum certification page.
Sample call
From the published OpenAPI specification. Replace the placeholders with your app's credentials and real values.
1. Get an access token
curl -X POST https://api.ooredoo.com/tmf-api/oauth/v4/generateToken \
-H "client_id: $CLIENT_ID" \
-H "client_secret: $CLIENT_SECRET" \
-H "scope: <scope>" \
-H "transactionId: <transactionId>" \
-d "msisdn=+974XXXXXXXX" \
-d "charge=1" \
-d "grant_type=client_credentials"2. Call the API
curl -X POST https://api.ooredoo.com/tmf-api/prepayBalanceManagement/v4/adjustBalance \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "transactionId: <transactionId>" \
-H "countryCode: <countryCode>" \
-H "Content-Type: application/json" \
-d '{
"amount": {
"amount": 1,
"units": "MVR"
},
"bucket": {
"id": "<id>",
"name": "New Subscription"
},
"usageType": "monetary"
}'API reference
Try any endpoint in the sandbox