TM Forum Open API

Open Gateway Onboarding and Ordering API

Onboard partners and order API access programmatically

The Open Gateway Onboarding and Ordering API (TM Forum TMF931) lets aggregators and channel partners onboard themselves and their customers, create applications and order access to API products without manual set-up.

  • Aggregator onboarding
  • App provisioning
  • API ordering

What you can do with this API

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

Open Gateway Onboarding and Ordering API (TMF931)

Aggregators, hyperscalers and channel partners who resell network APIs need to onboard many customers and applications. This API lets them do it in code instead of through the portal.

What you can do

  • Register an application owner: the organisation that will own one or more applications.
  • Create an application for that owner and receive its credentials.
  • List the API products on offer.
  • Order access to one or more API products for an application.

Standard

Follows TM Forum TMF931, the Open Gateway Operate API for onboarding and ordering, used across GSMA Open Gateway operators.

Questions about the Open Gateway Onboarding and Ordering API

What can I do with the Open Gateway Onboarding and Ordering API?

The Open Gateway Onboarding and Ordering API (TM Forum TMF931) lets aggregators and channel partners onboard themselves and their customers, create applications and order access to API products without manual set-up.

  • List the API products you can order (GET /apiProduct)
  • Register an application owner (your organisation or your customer's) (POST /applicationOwner)
  • Create an application for an owner (POST /application)
  • Order access to API products for an application (POST /apiProductOrder)
Which inputs does each call to the Open Gateway Onboarding and Ordering API need?
  • POST /applicationOwner: requires name, engagedParty
  • POST /application: requires name, applicationOwner
  • POST /apiProductOrder: requires @type, email, key, productOrderItem

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 Open Gateway Onboarding and Ordering API return?
  • POST /applicationOwner returns HTTP 201 with id, name, status
  • POST /application returns HTTP 201 with id, name, clientId, clientSecret

Responses are JSON.

How do I authenticate with the Open Gateway Onboarding and Ordering 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 Open Gateway Onboarding and Ordering 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
  • 500: Server error

On 401, request a new access token and retry.

Where is the Open Gateway Onboarding and Ordering API available?

Open Gateway Onboarding and Ordering is available in Algeria, Iraq, Kuwait, Maldives, Oman, Palestine, Qatar and Tunisia.

Which standard does the Open Gateway Onboarding and Ordering 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/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 GET https://api.ooredoo.com/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v1/apiProduct \
  -H "Authorization: Bearer $ACCESS_TOKEN"

API reference

Try any endpoint in the sandbox