openapi: 3.0.3 info: title: DMP Management version: 1.0.0 description: 'Connects a data management platform (DMP) partner to the operator''s customer wallet, audience segments and campaign tools through one dispatch interface. Partners can check and charge customer wallets, build and save audience filters, and register and track marketing campaigns. Every call is a POST with the same envelope: a requestId, a correlationId and an operation-specific payload. Available in Iraq (Asiacell): send the header countryCode: IRQ.' servers: - url: https://api.ooredoo.com description: Ooredoo API gateway tags: - name: Authentication - name: Wallet - name: Audience (DNA) - name: Campaigns - name: Operator paths: /tmf-api/oauth/token: post: tags: - Authentication summary: Get an access token description: Exchange your app's consumer key and secret for an access token (OAuth 2.0 client credentials). operationId: getToken requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type - client_id - client_secret properties: grant_type: type: string enum: - client_credentials example: client_credentials client_id: type: string description: Consumer key of your app client_secret: type: string description: Consumer secret of your app responses: '200': description: Access token content: application/json: schema: type: object properties: access_token: type: string token_type: type: string example: Bearer expires_in: type: integer example: 3599 '401': description: Invalid client credentials security: [] /dmpmanagement/v1/operations/dispatch/customer-haswallet: post: tags: - Wallet summary: Check whether a customer has a wallet operationId: customerHaswallet parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MsisdnRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/wallet-getcustomerbalance: post: tags: - Wallet summary: Get a customer's wallet balance operationId: walletGetcustomerbalance parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MsisdnRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/wallet-dopayment: post: tags: - Wallet summary: Take a payment from a customer's wallet operationId: walletDopayment parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/wallet-cancelpayment: post: tags: - Wallet summary: Cancel a wallet payment operationId: walletCancelpayment parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/wallet-getcustomerpayments: post: tags: - Wallet summary: List a customer's wallet payments operationId: walletGetcustomerpayments parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MsisdnRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/wallet-getdailypayments: post: tags: - Wallet summary: List the day's wallet payments operationId: walletGetdailypayments parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/dna-filterdata: post: tags: - Audience (DNA) summary: Count customers matching an audience filter operationId: dnaFilterdata parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/dna-savefilter: post: tags: - Audience (DNA) summary: Save an audience filter operationId: dnaSavefilter parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/dna-deletefilter: post: tags: - Audience (DNA) summary: Delete a saved audience filter operationId: dnaDeletefilter parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/dna-getdnametadata: post: tags: - Audience (DNA) summary: List the attributes you can filter on operationId: dnaGetdnametadata parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/campaign-created: post: tags: - Campaigns summary: Register a new campaign operationId: campaignCreated parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/campaign-sendstatus: post: tags: - Campaigns summary: Report a campaign's delivery status operationId: campaignSendstatus parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/campaign-getstatus: post: tags: - Campaigns summary: Get a campaign's status operationId: campaignGetstatus parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/opco-getsystemstatus: post: tags: - Operator summary: Check the operator platform status operationId: opcoGetsystemstatus parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/opco-sendparameters: post: tags: - Operator summary: Send configuration parameters to the operator operationId: opcoSendparameters parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] /dmpmanagement/v1/operations/dispatch/opco-getstatus: post: tags: - Operator summary: Get an operation's status operationId: opcoGetstatus parameters: - $ref: '#/components/parameters/countryCode' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DispatchRequest' responses: '200': description: Result from the operator platform content: application/json: schema: type: object additionalProperties: true '400': description: 'Invalid request: a required field is missing or malformed' content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: The token does not carry the scope this operation needs content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method not allowed content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/Error' '503': description: Operator backend unavailable content: application/json: schema: $ref: '#/components/schemas/Error' security: - BearerAuth: [] components: securitySchemes: BearerAuth: type: http scheme: bearer description: Access token from the token endpoint parameters: countryCode: name: countryCode in: header required: true description: Market the request is for. IRQ (Asiacell Iraq). schema: type: string enum: - IRQ schemas: Error: type: object properties: status: type: integer code: type: string message: type: string DispatchRequest: type: object required: - requestId - correlationId - payload properties: requestId: type: string description: Your unique ID for this request example: req-20261013-0001 correlationId: type: string description: ID that ties related requests together example: corr-0001 payload: type: object description: Operation-specific data additionalProperties: true MsisdnRequest: allOf: - $ref: '#/components/schemas/DispatchRequest' - type: object properties: payload: type: object required: - msisdn properties: msisdn: type: string description: Customer mobile number example: '9647700000000' PaymentRequest: allOf: - $ref: '#/components/schemas/DispatchRequest' - type: object properties: payload: type: object required: - msisdn - amount - currency properties: msisdn: type: string description: Customer mobile number example: '9647700000000' amount: type: number example: 1000 currency: type: string example: IQD campaignId: type: string description: Campaign the payment belongs to description: type: string channel: type: string description: Payment channel (default DAAS) example: DAAS