Ready to test? Jump to the sample call and the API reference, where you can try every endpoint. Start testing
Read the full API overview

DMP Management API

The DMP Management API gives a data management platform (DMP) partner one secure interface to the operator's customer wallet, audience data and campaign tools.

What you can do

  • Wallet: check whether a customer has a wallet, read the balance, take or cancel a payment, and list a customer's or the day's payments.
  • Audience (DNA): see which attributes you can filter on, count the customers a filter matches, and save or delete filters.
  • Campaigns: register a campaign, report its delivery status and read its status back.
  • Operator: check the platform status and exchange configuration parameters.

How it works

Every operation is a POST to /dmpmanagement/v1/operations/dispatch/{operation} with the same envelope: a requestId, a correlationId and an operation-specific payload. Authenticate with an OAuth 2.0 access token, and send the countryCode header for the market.

Availability

Available in Iraq through Asiacell (countryCode: IRQ).

Questions about the DMP Management API

What can I do with the DMP Management API?

The DMP Management API connects a data management platform to the operator's customer wallet, audience segments and campaign tools. Check and charge customer wallets, build audience filters, and register and track campaigns through one dispatch interface.

  • Check whether a customer has a wallet (POST /operations/dispatch/customer-haswallet)
  • Get a customer's wallet balance (POST /operations/dispatch/wallet-getcustomerbalance)
  • Take a payment from a customer's wallet (POST /operations/dispatch/wallet-dopayment)
  • Cancel a wallet payment (POST /operations/dispatch/wallet-cancelpayment)
  • List a customer's wallet payments (POST /operations/dispatch/wallet-getcustomerpayments)
  • List the day's wallet payments (POST /operations/dispatch/wallet-getdailypayments)
  • Count customers matching an audience filter (POST /operations/dispatch/dna-filterdata)
  • Save an audience filter (POST /operations/dispatch/dna-savefilter)
  • Delete a saved audience filter (POST /operations/dispatch/dna-deletefilter)
  • List the attributes you can filter on (POST /operations/dispatch/dna-getdnametadata)
  • Register a new campaign (POST /operations/dispatch/campaign-created)
  • Report a campaign's delivery status (POST /operations/dispatch/campaign-sendstatus)
  • Get a campaign's status (POST /operations/dispatch/campaign-getstatus)
  • Check the operator platform status (POST /operations/dispatch/opco-getsystemstatus)
  • Send configuration parameters to the operator (POST /operations/dispatch/opco-sendparameters)
  • Get an operation's status (POST /operations/dispatch/opco-getstatus)
Which inputs does each call to the DMP Management API need?
  • POST /operations/dispatch/customer-haswallet: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/wallet-getcustomerbalance: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/wallet-dopayment: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/wallet-cancelpayment: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/wallet-getcustomerpayments: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/wallet-getdailypayments: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/dna-filterdata: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/dna-savefilter: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/dna-deletefilter: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/dna-getdnametadata: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/campaign-created: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/campaign-sendstatus: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/campaign-getstatus: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/opco-getsystemstatus: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/opco-sendparameters: requires requestId, correlationId, payload; headers countryCode
  • POST /operations/dispatch/opco-getstatus: requires requestId, correlationId, payload; headers countryCode

Every call also needs Authorization: Bearer <access_token>. The API reference on this page shows each field's type and an example request.

How do I authenticate with the DMP Management API?
  1. Call POST https://api.ooredoo.com/tmf-api/oauth/token with your client ID and client secret. Send grant_type in the body. Use the client ID and secret of your app.
  2. The response contains access_token, token_type, expires_in.
  3. Send Authorization: Bearer <access_token> on each call until the token expires, then request a new one.
Which errors can the DMP Management API return?
  • 400: Invalid request: a required field is missing or malformed
  • 401: Invalid client credentials
  • 403: The token does not carry the scope this operation needs
  • 405: Method not allowed
  • 500: Server error
  • 503: Operator backend unavailable

On 401, request a new access token and retry.

Where is the DMP Management API available?

DMP Management is available in Iraq.

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/token \
  -H "client_id: $CLIENT_ID" \
  -H "client_secret: $CLIENT_SECRET" \
  -d "grant_type=client_credentials" \
  -d "client_id=<client_id>" \
  -d "client_secret=<client_secret>"

2. Call the API

curl -X POST https://api.ooredoo.com/dmpmanagement/v1/operations/dispatch/customer-haswallet \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "countryCode: <countryCode>" \
  -H "Content-Type: application/json" \
  -d '"<body>"'

API reference

Try any endpoint in the sandbox