| Recurso | Descripción |
|---|---|
| Consents | API operation of consents. |
| Number Verification | API operation of Number Verification API. |
| Sim Swap | API operation of Sim Swap API. |
| Capabilities | Operations for managing CAMARA capabilities |
| Views | Operations for managing View OpenGateway consent views |
| Admin | Operations for admin Open Gateway |
| QoSProfiles | Manage QoS Profiles |
| QoD | Manage QoD sessions |
| Applications |
| Recurso | Descripción |
|---|---|
| Consents | API operation of consents. |
| Number Verification | API operation of Number Verification API. |
| Sim Swap | API operation of Sim Swap API. |
| Capabilities | Operations for managing CAMARA capabilities |
| Views | Operations for managing View OpenGateway consent views |
| Admin | Operations for admin Open Gateway |
| QoSProfiles | Manage QoS Profiles |
| QoD | Manage QoD sessions |
| Applications |
Given an MSISDN, scope, purpose, and application, return whether the MSISDN consents to the capability query for the given application.
PATH PARAMETERS
{
"msisdn": "+123456789",
"client": "youtube",
"purpose": "dpv:Advertising",
"scopes": [
"sim-swap",
"number-verification:verify",
"kyc-match:match"
]
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
msisdn* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^(\+[1-9][0-9]{1,3})?[0-9]{6,14}$ | |
client* | string | Application that makes the request to consume the capacity. | ||
purpose* | string | Purpose for which the capability is to be consumed. Typically this will start with 'dpv:' followed by a value from the Data Privacy Vocabulary (DPV) ontology. | ||
scopes* | string[] | Capabilities to be consumed | minItems: 1 |
OK OK
{
"purpose": "dpv:FraudPreventionAndDetection",
"consents": [
{
"id": "SimSwap_FraudPreventionAndDetection_Agregador1App1",
"scope": "sim-swap",
"status": "ACCEPTED",
"expiration_date": "2025-12-31T23:59:59"
},
{
"id": "NumberVerification_FraudPreventionAndDetection_Agregador2App2",
"scope": "number-verification:verify",
"status": "EXPIRED",
"expiration_date": "2024-01-01T00:00"
},
{
"id": "KycMatch_FraudPreventionAndDetection_Agregador1App1",
"scope": "kyc-match",
"status": "PENDING"
}
]
} | Property | Type | Description | Constraints | Default | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
purpose | string | Purpose for which the capability is to be consumed. Typically this will start with 'dpv:' followed by a value from the Data Privacy Vocabulary (DPV) ontology. | |||||||||||||||||||||||||||
consents | object[] | ||||||||||||||||||||||||||||
Array items:
| |||||||||||||||||||||||||||||
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/consents/validate' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"msisdn": "+123456789",
"client": "youtube",
"purpose": "dpv:Advertising",
"scopes": [
"sim-swap",
"number-verification:verify",
"kyc-match:match"
]
}' Revokes all consents associated with the given MSISDN within the specified organization.
PATH PARAMETERS
No Content No Content. Consents revoked successfully.
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/consents/msisdn/654388973' \
-H 'Accept: application/json' Given an scope, purpose, and application (AppName and ClientName), check if the parent exists, and if exist, create a new consent.
PATH PARAMETERS
{
"client": "Vinted_aggr1",
"scope": "sim-swap",
"purpose": "dpv:Advertising"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
client* | string | Application that makes the request to consume the capacity. | ||
scope* | string | capabilities to be consumed | ||
purpose* | string | purpose for which the capability is to be consumed |
Created CREATED
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/consents/create' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"client": "Vinted_aggr1",
"scope": "sim-swap",
"purpose": "dpv:Advertising"
}' Verifies if the specified phone number (either in plain text or hashed format) matches the one that the user is currently using. Only one of the plain or hashed formats must be provided. - The number verification will be done for the user that has authenticated via mobile network - It returns true/false depending on if the hashed phone number received as input matches the authenticated user's device phone number associated to the access token
PATH PARAMETERS
{
"referenceMsisdn": "+34611223344",
"evidence": {
"type": "PLAIN",
"value": "+34611223344"
}
} {
"referenceMsisdn": "+34611223344",
"evidence": {
"type": "HASHED_SHA256",
"value": "32f67ab4e4312618b09cd23ed8ce41b13e095fe52b73b2e8da8ef49830e50dba"
}
} | Property | Type | Description | Constraints | Default | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
referenceMsisdn* | string | The MSISDN assigned by the network and extracted from the authentication token. A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | ||||||||||||||||
evidence* | object | ||||||||||||||||||
| |||||||||||||||||||
OK OK
{
"devicePhoneNumberVerified": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
devicePhoneNumberVerified* | boolean | Number verification. True, if it matches |
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorstringCorrelation id for the different services
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/number-verification/verify' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"referenceMsisdn": "+34611223344",
"evidence": {
"type": "PLAIN",
"value": "+34611223344"
}
}' Get timestamp of last SIM swap event for a mobile user account provided with phone number.
PATH PARAMETERS
Create a SIM swap date request for a phone number.
{
"phoneNumber": "+346661113334"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ |
OK Contains information about SIM swap change
{
"latestSimChange": "2023-07-03T14:27:08.312+02:00"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
latestSimChange* | string (date-time) | null | Timestamp of latest SIM swap performed. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) |
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Internal Server Error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service Unavailable
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Gateway Timeout
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/sim-swap/retrieve-date' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+346661113334"
}' Check if SIM swap has been performed during a past period
PATH PARAMETERS
Create a check SIM swap request for a phone number.
{
"phoneNumber": "+346661113334",
"maxAge": 240
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |
maxAge | integer (int32) | Period in hours to be checked for SIM swap. | min: 1, max: 2400 | 240 |
OK Returns whether a SIM swap has been performed during a past period
{
"swapped": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
swapped* | boolean | Indicates whether the SIM card has been swapped during the period within the provided age. |
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Internal Server Error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service Unavailable
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Gateway Timeout
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/sim-swap/check' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+346661113334",
"maxAge": 240
}' PATH PARAMETERS
QUERY PARAMETERS
Filter capabilities by name
OK List of capabilities
{
"capabilities": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "kyc-match"
}
],
"total": 10
} | Property | Type | Description | Constraints | Default | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
capabilities | object[] | ||||||||||||||||||
Array items:
| |||||||||||||||||||
total | integer | Total number of capabilities | |||||||||||||||||
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities' \
-H 'Accept: application/json' PATH PARAMETERS
{
"name": "kyc-match"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
name* | string | Name of the capability (CAMARA capability name) | maxLength: 100 |
Created Capability created successfully
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "kyc-match"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Capability ID | ||
name | string | Capability name |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"name": "kyc-match"
}' PATH PARAMETERS
Capability ID (UUID)
OK Capability found
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "kyc-match"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Capability ID | ||
name | string | Capability name |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id' \
-H 'Accept: application/json' PATH PARAMETERS
Capability ID (UUID)
{
"name": "sim-swap"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
name | string | Updated name of the capability | maxLength: 100 |
OK Capability updated successfully
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "kyc-match"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Capability ID | ||
name | string | Capability name |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X PUT 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"name": "sim-swap"
}' PATH PARAMETERS
Capability ID (UUID)
No Content Capability deleted successfully
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id' \
-H 'Accept: application/json' PATH PARAMETERS
Capability ID (UUID)
OK List of views associated with the capability
{
"views": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true,
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"capabilityIds": [
"string"
]
}
],
"total": 5
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
views | object[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
total | integer | Total number of views | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id/views' \
-H 'Accept: application/json' PATH PARAMETERS
Capability ID (UUID)
{
"viewId": "550e8400-e29b-41d4-a716-446655440002"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
viewId* | string (uuid) | View ID to associate with the capability |
Created View successfully associated with capability
{
"id": "650e8400-e29b-41d4-a716-446655440000",
"capabilityId": "550e8400-e29b-41d4-a716-446655440000",
"viewId": "550e8400-e29b-41d4-a716-446655440002"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Association ID | ||
capabilityId | string (uuid) | Capability ID | ||
viewId | string (uuid) | View ID |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id/views' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"viewId": "550e8400-e29b-41d4-a716-446655440002"
}' PATH PARAMETERS
Capability ID (UUID)
View ID (UUID)
No Content View successfully removed from capability
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/capabilities/:id/views/:view_id' \
-H 'Accept: application/json' PATH PARAMETERS
QUERY PARAMETERS
Filter by visibility status
Filter by language code (e.g., es-ES, eu-ES, en-US)
OK List of views
{
"views": [
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true,
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"capabilityIds": [
"string"
]
}
],
"total": 5
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
views | object[] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
total | integer | Total number of views | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/views?languageCode=es-ES' \
-H 'Accept: application/json' PATH PARAMETERS
{
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
name* | string | Name of the view | maxLength: 100 | |
orderDisplay | integer | Display order for the view | ||
visibility | boolean | Whether the view is visible | true |
Created View created successfully
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true,
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"capabilityIds": [
"string"
]
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) | View ID | ||||||||||||||||||||||
name | string | View name | ||||||||||||||||||||||
orderDisplay | integer | Display order | ||||||||||||||||||||||
visibility | boolean | Visibility status | ||||||||||||||||||||||
translations | object[] | |||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||
capabilityIds | string (uuid)[] | Associated capability IDs | ||||||||||||||||||||||
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/views' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true
}' PATH PARAMETERS
View ID (UUID)
OK View found
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true,
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"capabilityIds": [
"string"
]
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) | View ID | ||||||||||||||||||||||
name | string | View name | ||||||||||||||||||||||
orderDisplay | integer | Display order | ||||||||||||||||||||||
visibility | boolean | Visibility status | ||||||||||||||||||||||
translations | object[] | |||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||
capabilityIds | string (uuid)[] | Associated capability IDs | ||||||||||||||||||||||
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
{
"name": "kyc-consent-view-updated",
"orderDisplay": 2,
"visibility": false
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
name | string | Updated name of the view | maxLength: 100 | |
orderDisplay | integer | Updated display order | ||
visibility | boolean | Updated visibility status |
OK View updated successfully
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "kyc-consent-view",
"orderDisplay": 1,
"visibility": true,
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"capabilityIds": [
"string"
]
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | string (uuid) | View ID | ||||||||||||||||||||||
name | string | View name | ||||||||||||||||||||||
orderDisplay | integer | Display order | ||||||||||||||||||||||
visibility | boolean | Visibility status | ||||||||||||||||||||||
translations | object[] | |||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||
capabilityIds | string (uuid)[] | Associated capability IDs | ||||||||||||||||||||||
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X PUT 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"name": "kyc-consent-view-updated",
"orderDisplay": 2,
"visibility": false
}' PATH PARAMETERS
View ID (UUID)
No Content View deleted successfully
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
OK List of capabilities associated with the view
{
"capabilities": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "kyc-match"
}
],
"total": 10
} | Property | Type | Description | Constraints | Default | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
capabilities | object[] | ||||||||||||||||||
Array items:
| |||||||||||||||||||
total | integer | Total number of capabilities | |||||||||||||||||
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/capabilities' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
{
"capabilityId": "550e8400-e29b-41d4-a716-446655440000"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
capabilityId* | string (uuid) | Capability ID to associate with the view |
Created Capability successfully associated with view
{
"id": "650e8400-e29b-41d4-a716-446655440000",
"viewId": "550e8400-e29b-41d4-a716-446655440002",
"capabilityId": "550e8400-e29b-41d4-a716-446655440000"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Association ID | ||
viewId | string (uuid) | View ID | ||
capabilityId | string (uuid) | Capability ID |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/capabilities' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"capabilityId": "550e8400-e29b-41d4-a716-446655440000"
}' PATH PARAMETERS
View ID (UUID)
Capability ID (UUID)
No Content Capability successfully removed from view
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/capabilities/:capability_id' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
OK List of translations for the view
{
"translations": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}
],
"total": 3
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
translations | object[] | |||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||
total | integer | Total number of translations | ||||||||||||||||||||||
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/translations' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
{
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
languageCode* | string | Language code (e.g., es-ES, eu-ES, en-US) | ||
description | string | Translated description |
Created Translation successfully added to view
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Translation ID | ||
languageCode | string | Language code | ||
description | string | Translated description |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/translations' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
}' PATH PARAMETERS
View ID (UUID)
Language code (e.g., es-ES, eu-ES, en-US)
OK Translation found
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Translation ID | ||
languageCode | string | Language code | ||
description | string | Translated description |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/translations/:language_code' \
-H 'Accept: application/json' PATH PARAMETERS
View ID (UUID)
Language code (e.g., es-ES, eu-ES, en-US)
{
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC actualizada"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
languageCode | string | Updated language code | ||
description | string | Updated translated description |
OK Translation updated successfully
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
id | string (uuid) | Translation ID | ||
languageCode | string | Language code | ||
description | string | Translated description |
Bad Request Bad request - Invalid input
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X PUT 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/translations/:language_code' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"languageCode": "es-ES",
"description": "Vista de consentimiento para KYC actualizada"
}' PATH PARAMETERS
View ID (UUID)
Language code (e.g., es-ES, eu-ES, en-US)
No Content Translation deleted successfully
Not Found Resource not found
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
Internal Server Error Internal server error
{
"code": "BAD_REQUEST",
"message": "Invalid input provided",
"status": 400
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/views/:id/translations/:language_code' \
-H 'Accept: application/json' Returns the list of tenant identifiers registered in the system.
Each tenant corresponds to a PostgreSQL schema prefixed with opengateway_.
OK List of tenant identifiers
{
"tenants": [
"tenant1",
"tenant2"
],
"total": 2
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
tenants | string[] | |||
total | integer | Total number of tenants |
Internal Server Error Internal server error
{
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred",
"status": 500
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code | string | Error code | ||
message | string | Error message | ||
status | integer | HTTP status code |
curl -X GET 'https://opengateway.masstack.com/v1/admin/tenants' \
-H 'Accept: application/json' Returns all QoS Profiles that match the given criteria. NOTES:
PATH PARAMETERS
Parameters to query QoS Profiles for a given device
{
"phoneNumber": "+123456789",
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"name": "voice",
"status": "ACTIVE"
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
device | object | End-user equipment able to connect to a mobile network. Examples of devices include smartphones or IoT sensors/actuators. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` * `phoneNumber` NOTE1: the network operator might support only a subset of these options. The API consumer can provide multiple identifiers to be compatible across different operators. In this case the identifiers MUST belong to the same device. NOTE2: as for this Commonalities release, we are enforcing that the networkAccessIdentifier is only part of the schema for future-proofing, and CAMARA does not currently allow its use. After the CAMARA meta-release work is concluded and the relevant issues are resolved, its use will need to be explicitly documented in the guidelines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
name | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses: - A UUID style string - Support for predefined profile names like `QOS_E`, `QOS_S`, `QOS_M`, and `QOS_L` - A searchable descriptive name | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
status | string
()
ACTIVEINACTIVEDEPRECATED | The current status of the QoS Profile - `ACTIVE`- QoS Profile is available to be used - `INACTIVE`- QoS Profile is not currently available to be deployed - `DEPRECATED`- QoS profile is actively being used in a QoD session, but can not be deployed in new QoD sessions | ||||||||||||||||||||||||||||||||||||||||||||||||||||
OK Contains information about QoS Profiles
{
"profiles": [
{
"name": "voice",
"description": "QoS profile for video streaming",
"status": "ACTIVE",
"countryAvailability": [
{
"countryName": "GB",
"networks": [
"23591",
"23415"
]
},
{
"countryName": "DE",
"networks": [
"26202"
]
}
],
"targetMinUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"targetMinDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"minDuration": {
"value": 12,
"unit": "Days"
},
"maxDuration": {
"value": 12,
"unit": "Days"
},
"priority": 20,
"packetDelayBudget": {
"value": 12,
"unit": "Days"
},
"jitter": {
"value": 12,
"unit": "Days"
},
"packetErrorLossRate": 3,
"l4sQueueType": "non-l4s-queue",
"serviceClass": "real_time_interactive"
}
]
} | Property | Type | Description | Constraints | Default | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
profiles | object[] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array items:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/qos-profiles/retrieve-qos-profiles' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+123456789",
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"name": "voice",
"status": "ACTIVE"
}' Returns a QoS Profile that matches the given name.
The access token may be either a 2-legged or 3-legged access token. If the access token is 3-legged, a QoS Profile is only returned if available to all subjects associated with the access token.
PATH PARAMETERS
Qos Profile name
QUERY PARAMETERS
OK Contains information about QoS Profiles
{
"name": "voice",
"description": "QoS profile for video streaming",
"status": "ACTIVE",
"countryAvailability": [
{
"countryName": "GB",
"networks": [
"23591",
"23415"
]
},
{
"countryName": "DE",
"networks": [
"26202"
]
}
],
"targetMinUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamRate": {
"value": 10,
"unit": "bps"
},
"maxUpstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"targetMinDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamRate": {
"value": 10,
"unit": "bps"
},
"maxDownstreamBurstRate": {
"value": 10,
"unit": "bps"
},
"minDuration": {
"value": 12,
"unit": "Days"
},
"maxDuration": {
"value": 12,
"unit": "Days"
},
"priority": 20,
"packetDelayBudget": {
"value": 12,
"unit": "Days"
},
"jitter": {
"value": 12,
"unit": "Days"
},
"packetErrorLossRate": 3,
"l4sQueueType": "non-l4s-queue",
"serviceClass": "real_time_interactive"
} | Property | Type | Description | Constraints | Default | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name* | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the service providers implementation. Some options addresses: - A UUID style string - Support for predefined profile names like `QOS_E`, `QOS_S`, `QOS_M`, and `QOS_L` - A searchable descriptive name | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | ||||||||||||||||
description | string | A description of the QoS profile. | |||||||||||||||||
status* | string
()
ACTIVEINACTIVEDEPRECATED | The current status of the QoS Profile - `ACTIVE`- QoS Profile is available to be used - `INACTIVE`- QoS Profile is not currently available to be deployed - `DEPRECATED`- QoS profile is actively being used in a QoD session, but can not be deployed in new QoD sessions | |||||||||||||||||
countryAvailability | object[] | A list of countries, and optionally networks, for which the API provider makes the profile available. - When profiles are filtered for a specific device (i.e. using a 3-legged access token or an explicit device filter parameter), the profile can be used by that device in any of these countries when connected to any of the listed networks (assuming roaming is permitted for networks that are not the device's home network), or the API provider's own network if no networks are listed - When there is no device filter, availability for a given country means that the QoS profile may be available to some devices connected to the listed networks in that country (or to the API provider’s default network if none are listed). However, this does not imply that the profile is available to all devices, or that a particular device will be able to use the profile across all listed countries or networks. In particular, the response does not provide enough information to determine availability for roaming for specific devices; consumers should query the API with a specific device identifier to get definitive availability. - If this field is not present in the QoS profile, no assumption can be made about the availability of the profile in any given country or for any given network | |||||||||||||||||
Array items:
| |||||||||||||||||||
targetMinUpstreamRate | object | This is the target minimum upload speed for the QoS profile. It represents the minimum rate that the network attempts to deliver. Please note that this is a target value—the network might not always be able to provide this rate under all conditions. It helps ensure that applications like video calls or live streaming perform consistently. | |||||||||||||||||
| |||||||||||||||||||
maxUpstreamRate | object | The maximum best effort data | |||||||||||||||||
| |||||||||||||||||||
maxUpstreamBurstRate | object | When defined, this is the maximum upstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxUpstreamRate for a period of time. | |||||||||||||||||
| |||||||||||||||||||
targetMinDownstreamRate | object | This is the target maximum upload speed for the QoS profile. It represents the maximum rate that the network attempts to deliver. Please note that this is a target value—the network might not always be able to provide this rate under all conditions. It helps ensure that applications like video calls or live streaming perform consistently. | |||||||||||||||||
| |||||||||||||||||||
maxDownstreamRate | object | The maximum best effort rate | |||||||||||||||||
| |||||||||||||||||||
maxDownstreamBurstRate | object | When defined, this is the maximum downstream burst rate for the QoS profile, that will enable the network to burst data at a higher rate than the maxDownstreamRate for a period of time. This can result in improved user experience when there is additional network capacity. For instance, when a user is streaming a video, the network can burst data at a higher rate to fill the buffer, and then return to the maxUpstreamRate once the buffer is full. | |||||||||||||||||
| |||||||||||||||||||
minDuration | object | The shortest time period that this profile can be deployed. | |||||||||||||||||
| |||||||||||||||||||
maxDuration | object | The maximum time period that this profile can be deployed. Overall session duration must not exceed this value. This includes the initial requested duration plus any extensions. | |||||||||||||||||
| |||||||||||||||||||
priority | integer (int32) | Priority levels allow efficient resource allocation and ensure optimal performance for various services in each technology, with the highest priority traffic receiving preferential treatment. The lower value the higher priority. Not all access networks use the same priority range, so this priority will be scaled to the access network's priority range. | min: 1, max: 100 | ||||||||||||||||
packetDelayBudget | object | The packet delay budget is the maximum allowable one-way latency between the customer's device and the gateway from the operator's network to other networks. By limiting the delay, the network can provide an acceptable level of performance for various services, such as voice calls, video streaming, and data. The end-to-end or round trip latency will be about two times this value plus the latency not controlled by the operator | |||||||||||||||||
| |||||||||||||||||||
jitter | object | The jitter requirement aims to limit the maximum variation in round-trip packet delay for the 99th percentile of traffic, following ITU Y.1540 standards. It considers only acknowledged packets in a session, which are packets that receive a confirmation of receipt from the recipient (e.g., using TCP). This requirement helps maintain consistent latency, essential for real-time applications such as VoIP, video calls, and gaming. | |||||||||||||||||
| |||||||||||||||||||
packetErrorLossRate | integer (int32) | This field specifies the acceptable level of data loss during transmission. The value is an exponent of 10, so a value of 3 means that up to 10⁻³, or 0.1%, of the data packets may be lost. This setting is part of a broader system that categorizes different types of network traffic (like phone calls, video streams, or data transfers) to ensure they perform reliably on the network. | min: 1, max: 10 | ||||||||||||||||
l4sQueueType | string
()
non-l4s-queuel4s-queuemixed-queue | **NOTE**: l4sQueueType is experimental and could change or be removed in a future release. Specifies the type of queue for L4S (Low Latency, Low Loss, Scalable Throughput) traffic management. L4S is an advanced queue management approach designed to provide ultra-low latency and high throughput for internet traffic, particularly beneficial for interactive applications such as gaming, video conferencing, and virtual reality. **Queue Type Descriptions:** - **non-l4s-queue**: A traditional queue used for legacy internet traffic that does not utilize L4S enhancements. It provides standard latency and throughput levels. - **l4s-queue**: A dedicated queue optimized for L4S traffic, delivering ultra-low latency, low loss, and scalable throughput to support latency-sensitive applications. - **mixed-queue**: A shared queue that can handle both L4S and traditional traffic, offering a balance between ultra-low latency for L4S flows and compatibility with non-L4S flows. | |||||||||||||||||
serviceClass | string
()
microsoft_voicemicrosoft_audio_videoreal_time_interactivemultimedia_streamingbroadcast_videolow_latency_datahigh_throughput_datalow_priority_datastandard | **NOTE**: serviceClass is experimental and could change or be removed in a future release. The name of a Service Class, representing a QoS Profile designed to provide optimized behavior for a specific application type. While DSCP values are commonly associated with Service Classes, their use may vary across network segments and may not be applied throughout the entire end-to-end QoS session. This aligns with the serviceClass concept used in HomeDevicesQoQ for consistent terminology. Service classes define specific QoS behaviors that map to DSCP (Differentiated Services Code Point) values or Microsoft QoS traffic types. The supported mappings are: 1. Values aligned with the [RFC4594](https://datatracker.ietf.org/doc/html/rfc4594) guidelines for differentiated traffic classes. 2. Microsoft [QOS_TRAFFIC_TYPE](https://learn.microsoft.com/en-us/windows/win32/api/qos2/ne-qos2-qos_traffic_type) values for Windows developers. **Supported Service Classes**: | Service Class Name | DSCP Name | DSCP value (decimal) | DCSP value (binary) | Microsoft Value | Application Examples | |-----------------------|-----------|----------------------|---------------------|-----------------|----------------------------------------------------------------------| | Microsoft Voice | CS7 | 56 | 111000 | 4,5 | Microsoft QOSTrafficTypeVoice and QOSTrafficTypeControl | | Microsoft Audio/Video | CS5 | 40 | 101000 | 2,3 | Microsoft QOSTrafficTypeExcellentEffort and QOSTrafficTypeAudioVideo | | Real-Time Interactive | CS4 | 32 | 100000 | | Video conferencing and Interactive gaming | | Multimedia Streaming | AF31 | 26 | 011010 | | Streaming video and audio on demand | | Broadcast Video | CS3 | 24 | 011000 | | Broadcast TV & live events | | Low-Latency Data | AF21 | 18 | 010010 | | Client/server transactions Web-based ordering | | High-Throughput Data | AF11 | 10 | 001010 | | Store and forward applications | | Low-Priority Data | CS1 | 8 | 001000 | 1 | Any flow that has no BW assurance - also: | | | | | | | Microsoft QOSTrafficTypeBackground | | Standard | DF(CS0) | 0 | 000000 | 0 | Undifferentiated applications - also: | | | | | | | Microsoft QOSTrafficTypeBestEffort | | |||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/qos-profiles/:name?phoneNumber=%2B123456789' \
-H 'Accept: application/json' Create QoS Session to manage latency/throughput priorities
If the qosStatus in the API response is "AVAILABLE" and a notification callback is provided the API consumer will receive in addition to the response a
QOS_STATUS_CHANGED event notification with qosStatus as AVAILABLE.
If the qosStatus in the API response is REQUESTED, the client will receive either
QOS_STATUS_CHANGED event notification with qosStatus as AVAILABLE after the network notifies that it has created the requested session, orQOS_STATUS_CHANGED event notification with qosStatus as UNAVAILABLE and statusInfo as NETWORK_TERMINATED after the network notifies that it has failed to provide the requested session.A QOS_STATUS_CHANGED event notification with qosStatus as UNAVAILABLE will also be send if the network terminates the session before the requested duration expired
NOTES:
In case of a QOS_STATUS_CHANGED event with qosStatus as UNAVAILABLE and statusInfo as NETWORK_TERMINATED the resources of the QoS session are not directly released, but will get deleted automatically at earliest 360 seconds after the event.
This behavior allows API consumers which are not receiving notification events but are polling to get the session information with the qosStatus UNAVAILABLE and statusInfo NETWORK_TERMINATED. Before a API consumer can attempt to create a new QoD session for the same device and flow period they must release the session resources with an explicit delete operation if not yet automatically deleted.
The access token may be either 2-legged or 3-legged. See "Identifying the device from the access token" for further information
device object, which therefore MUST be provided.PATH PARAMETERS
Parameters to create a new session
{
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"phoneNumber": "+123456789",
"duration": 3600
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
device | object | End-user equipment able to connect to a network. Examples of devices include smartphones or IoT sensors/actuators. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` * `phoneNumber` * `networkAccessIdentifier` NOTE1: the network operator might support only a subset of these options. The API consumer can provide multiple identifiers to be compatible across different network operators. In this case the identifiers MUST belong to the same device. NOTE2: as for this Commonalities release, we are enforcing that the networkAccessIdentifier is only part of the schema for future-proofing, and CAMARA does not currently allow its use. After the CAMARA meta-release work is concluded and the relevant issues are resolved, its use will need to be explicitly documented in the guidelines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServer* | object | A server hosting backend applications to deliver some business logic to clients. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
devicePorts | object | The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServerPorts | object | A list of single ports or port ranges on the application server | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
qosProfile* | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the API provider implementation. Some options addresses: - A UUID style string - Support for predefined profiles QOS_S, QOS_M, QOS_L, and QOS_E - A searchable descriptive name The set of QoS Profiles that an API provider is offering may be retrieved by means of the QoS Profile API (qos-profile) or agreed on onboarding time. | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sink | string (uri) | The address to which events about all status changes of the session (e.g. session termination) shall be delivered using the selected protocol. | pattern: ^https:\/\/.+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sinkCredential | object | object | object | A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
duration* | integer (int32) | Requested session duration in seconds. Value may be explicitly limited for the QoS profile, as specified in the Qos Profile (see qos-profile API). Implementations can grant the requested session duration or set a different duration, based on network policies or conditions. | min: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Created Session created
{
"device": {
"phoneNumber": "+123456789"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"sessionId": "string",
"duration": 3600,
"startedAt": "2024-06-01T12:00:00Z",
"expiresAt": "2024-06-01T13:00:00Z",
"qosStatus": "REQUESTED",
"statusInfo": "DURATION_EXPIRED"
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
device | object | Disambiguates the device to which the session applies when multiple device identifiers were provided | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServer* | object | A server hosting backend applications to deliver some business logic to clients. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
devicePorts | object | The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServerPorts | object | A list of single ports or port ranges on the application server | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
qosProfile* | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the API provider implementation. Some options addresses: - A UUID style string - Support for predefined profiles QOS_S, QOS_M, QOS_L, and QOS_E - A searchable descriptive name The set of QoS Profiles that an API provider is offering may be retrieved by means of the QoS Profile API (qos-profile) or agreed on onboarding time. | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sink | string (uri) | The address to which events about all status changes of the session (e.g. session termination) shall be delivered using the selected protocol. | pattern: ^https:\/\/.+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sinkCredential | object | object | object | A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sessionId* | string (uuid) | Session ID in UUID format | pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
duration* | integer (int32) | Session duration in seconds. Implementations can grant the requested session duration or set a different duration, based on network policies or conditions. - When `qosStatus` is "REQUESTED", the value is the duration to be scheduled, granted by the implementation. - When `qosStatus` is "AVAILABLE", the value is the overall duration since `startedAt. When the session is extended, the value is the new overall duration of the session. - When `qosStatus` is "UNAVAILABLE", the value is the overall effective duration since `startedAt` until the session was terminated. | min: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||
startedAt | string (date-time) | Date and time when the QoS status became "AVAILABLE". Not to be returned when `qosStatus` is "REQUESTED". It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | string (date-time) | Date and time of the QoS session expiration. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - When `qosStatus` is "AVAILABLE", it is the limit time when the session is scheduled to finnish, if not terminated by other means. - When `qosStatus` is "UNAVAILABLE", it is the time when the session was terminated. - Not to be returned when `qosStatus` is "REQUESTED". When the session is extended, the value is the new expiration time of the session. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
qosStatus* | string
()
REQUESTEDAVAILABLEUNAVAILABLE | The current status of the requested QoS session. The status can be one of the following: * `REQUESTED` - QoS has been requested by creating a session * `AVAILABLE` - The requested QoS has been provided by the network * `UNAVAILABLE` - The requested QoS cannot be provided by the network due to some reason | ||||||||||||||||||||||||||||||||||||||||||||||||||||
statusInfo | string
()
DURATION_EXPIREDNETWORK_TERMINATEDDELETE_REQUESTED | Reason for the new `qosStatus`. Currently `statusInfo` is only applicable when `qosStatus` is 'UNAVAILABLE'. * `DURATION_EXPIRED` - Session terminated due to requested duration expired * `NETWORK_TERMINATED` - Network terminated the session before the requested duration expired * `DELETE_REQUESTED`- User requested the deletion of the session before the requested duration expired | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Conflict Conflict
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/quality-on-demand/sessions' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"phoneNumber": "+123456789",
"duration": 3600
}' Querying for QoS session resource information details
NOTES:
PATH PARAMETERS
Session ID that was obtained from the createSession operation
OK Contains information about active session
{
"device": {
"phoneNumber": "+123456789"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"sessionId": "string",
"duration": 3600,
"startedAt": "2024-06-01T12:00:00Z",
"expiresAt": "2024-06-01T13:00:00Z",
"qosStatus": "REQUESTED",
"statusInfo": "DURATION_EXPIRED"
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
device | object | Disambiguates the device to which the session applies when multiple device identifiers were provided | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServer* | object | A server hosting backend applications to deliver some business logic to clients. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
devicePorts | object | The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServerPorts | object | A list of single ports or port ranges on the application server | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
qosProfile* | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the API provider implementation. Some options addresses: - A UUID style string - Support for predefined profiles QOS_S, QOS_M, QOS_L, and QOS_E - A searchable descriptive name The set of QoS Profiles that an API provider is offering may be retrieved by means of the QoS Profile API (qos-profile) or agreed on onboarding time. | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sink | string (uri) | The address to which events about all status changes of the session (e.g. session termination) shall be delivered using the selected protocol. | pattern: ^https:\/\/.+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sinkCredential | object | object | object | A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sessionId* | string (uuid) | Session ID in UUID format | pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
duration* | integer (int32) | Session duration in seconds. Implementations can grant the requested session duration or set a different duration, based on network policies or conditions. - When `qosStatus` is "REQUESTED", the value is the duration to be scheduled, granted by the implementation. - When `qosStatus` is "AVAILABLE", the value is the overall duration since `startedAt. When the session is extended, the value is the new overall duration of the session. - When `qosStatus` is "UNAVAILABLE", the value is the overall effective duration since `startedAt` until the session was terminated. | min: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||
startedAt | string (date-time) | Date and time when the QoS status became "AVAILABLE". Not to be returned when `qosStatus` is "REQUESTED". It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | string (date-time) | Date and time of the QoS session expiration. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - When `qosStatus` is "AVAILABLE", it is the limit time when the session is scheduled to finnish, if not terminated by other means. - When `qosStatus` is "UNAVAILABLE", it is the time when the session was terminated. - Not to be returned when `qosStatus` is "REQUESTED". When the session is extended, the value is the new expiration time of the session. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
qosStatus* | string
()
REQUESTEDAVAILABLEUNAVAILABLE | The current status of the requested QoS session. The status can be one of the following: * `REQUESTED` - QoS has been requested by creating a session * `AVAILABLE` - The requested QoS has been provided by the network * `UNAVAILABLE` - The requested QoS cannot be provided by the network due to some reason | ||||||||||||||||||||||||||||||||||||||||||||||||||||
statusInfo | string
()
DURATION_EXPIREDNETWORK_TERMINATEDDELETE_REQUESTED | Reason for the new `qosStatus`. Currently `statusInfo` is only applicable when `qosStatus` is 'UNAVAILABLE'. * `DURATION_EXPIRED` - Session terminated due to requested duration expired * `NETWORK_TERMINATED` - Network terminated the session before the requested duration expired * `DELETE_REQUESTED`- User requested the deletion of the session before the requested duration expired | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X GET 'https://opengateway.masstack.com/v1/orgs/masmovil/quality-on-demand/sessions/:sessionId' \
-H 'Accept: application/json' Release resources related to QoS session
If the notification callback is provided and the qosStatus of the session was AVAILABLE the client will receive in addition to the response a QOS_STATUS_CHANGED event with
qosStatus as UNAVAILABLE andstatusInfo as DELETE_REQUESTED
There will be no notification event if the qosStatus was already UNAVAILABLE.NOTES:
PATH PARAMETERS
Session ID that was obtained from the createSession operation
No Content Session deleted
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X DELETE 'https://opengateway.masstack.com/v1/orgs/masmovil/quality-on-demand/sessions/:sessionId' \
-H 'Accept: application/json' Extend the overall session duration of an active QoS session (with qosStatus = AVAILABLE).
The overall duration of the QoS session, including the additional extended duration, shall not exceed the maximum duration limit fixed for the QoS Profile. If the current duration plus the value of requestedAdditionalDuration exceeds the maximum limit, the new overall duration shall be capped to the maximum value allowed.
An example: For a QoS profile limited to a maxDuration of 50,000 seconds, a QoD session was originally created with duration 30,000 seconds. Before the session expires, the developer requests to extend the session by another 30,000 seconds:
NOTES:
PATH PARAMETERS
Session ID that was obtained from the createSession operation
Parameters to extend the duration of an active session
{
"requestedAdditionalDuration": 1800
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
requestedAdditionalDuration* | integer (int32) | Additional duration in seconds to be added to the current session duration. The overall session duration, including extensions, shall not exceed the maximum duration limit for the QoS Profile. | min: 1 |
OK Contains information about active session
{
"device": {
"phoneNumber": "+123456789"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"sessionId": "string",
"duration": 3600,
"startedAt": "2024-06-01T12:00:00Z",
"expiresAt": "2024-06-01T13:00:00Z",
"qosStatus": "REQUESTED",
"statusInfo": "DURATION_EXPIRED"
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
device | object | Disambiguates the device to which the session applies when multiple device identifiers were provided | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServer* | object | A server hosting backend applications to deliver some business logic to clients. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
devicePorts | object | The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
applicationServerPorts | object | A list of single ports or port ranges on the application server | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
qosProfile* | string | A unique name for identifying a specific QoS profile. This may follow different formats depending on the API provider implementation. Some options addresses: - A UUID style string - Support for predefined profiles QOS_S, QOS_M, QOS_L, and QOS_E - A searchable descriptive name The set of QoS Profiles that an API provider is offering may be retrieved by means of the QoS Profile API (qos-profile) or agreed on onboarding time. | minLength: 3, maxLength: 256, pattern: ^[a-zA-Z0-9_.-]+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sink | string (uri) | The address to which events about all status changes of the session (e.g. session termination) shall be delivered using the selected protocol. | pattern: ^https:\/\/.+$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
sinkCredential | object | object | object | A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sessionId* | string (uuid) | Session ID in UUID format | pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
duration* | integer (int32) | Session duration in seconds. Implementations can grant the requested session duration or set a different duration, based on network policies or conditions. - When `qosStatus` is "REQUESTED", the value is the duration to be scheduled, granted by the implementation. - When `qosStatus` is "AVAILABLE", the value is the overall duration since `startedAt. When the session is extended, the value is the new overall duration of the session. - When `qosStatus` is "UNAVAILABLE", the value is the overall effective duration since `startedAt` until the session was terminated. | min: 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||
startedAt | string (date-time) | Date and time when the QoS status became "AVAILABLE". Not to be returned when `qosStatus` is "REQUESTED". It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt | string (date-time) | Date and time of the QoS session expiration. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - When `qosStatus` is "AVAILABLE", it is the limit time when the session is scheduled to finnish, if not terminated by other means. - When `qosStatus` is "UNAVAILABLE", it is the time when the session was terminated. - Not to be returned when `qosStatus` is "REQUESTED". When the session is extended, the value is the new expiration time of the session. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
qosStatus* | string
()
REQUESTEDAVAILABLEUNAVAILABLE | The current status of the requested QoS session. The status can be one of the following: * `REQUESTED` - QoS has been requested by creating a session * `AVAILABLE` - The requested QoS has been provided by the network * `UNAVAILABLE` - The requested QoS cannot be provided by the network due to some reason | ||||||||||||||||||||||||||||||||||||||||||||||||||||
statusInfo | string
()
DURATION_EXPIREDNETWORK_TERMINATEDDELETE_REQUESTED | Reason for the new `qosStatus`. Currently `statusInfo` is only applicable when `qosStatus` is 'UNAVAILABLE'. * `DURATION_EXPIRED` - Session terminated due to requested duration expired * `NETWORK_TERMINATED` - Network terminated the session before the requested duration expired * `DELETE_REQUESTED`- User requested the deletion of the session before the requested duration expired | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Conflict Conflict
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/quality-on-demand/sessions/:sessionId/extend' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"requestedAdditionalDuration": 1800
}' Querying for QoS session resource information details for a device
NOTES:
device parameter MUST NOT be provided in the request.PATH PARAMETERS
Parameters to get QoS session information by device
{
"phoneNumber": "+123456789",
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
}
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
phoneNumber* | string | A public identifier addressing a telephone subscription. In mobile networks it corresponds to the MSISDN (Mobile Station International Subscriber Directory Number). In order to be globally unique it has to be formatted in international format, according to E.164 standard, prefixed with '+'. | pattern: ^\+[1-9][0-9]{4,14}$ | |||||||||||||||||||||||||||||||||||||||||||||||||||
device | object | End-user equipment able to connect to a network. Examples of devices include smartphones or IoT sensors/actuators. The developer can choose to provide the below specified device identifiers: * `ipv4Address` * `ipv6Address` * `phoneNumber` * `networkAccessIdentifier` NOTE1: the network operator might support only a subset of these options. The API consumer can provide multiple identifiers to be compatible across different network operators. In this case the identifiers MUST belong to the same device. NOTE2: as for this Commonalities release, we are enforcing that the networkAccessIdentifier is only part of the schema for future-proofing, and CAMARA does not currently allow its use. After the CAMARA meta-release work is concluded and the relevant issues are resolved, its use will need to be explicitly documented in the guidelines. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
OK Returns the QoS sessions information for a given device. A device may have multiple sessions, thus the response is an array. An empty array is returned if no sessions are found.
{
"sessions": [
{
"device": {
"phoneNumber": "+123456789"
},
"applicationServer": {
"ipv4Address": "198.51.100.0/24",
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
},
"devicePorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"applicationServerPorts": {
"ranges": [
{
"from": 5010,
"to": 5020
}
],
"ports": [
5060,
5070
]
},
"qosProfile": "voice",
"sink": "https://endpoint.example.com/sink",
"sinkCredential": {
"credentialType": "string"
},
"sessionId": "string",
"duration": 3600,
"startedAt": "2024-06-01T12:00:00Z",
"expiresAt": "2024-06-01T13:00:00Z",
"qosStatus": "REQUESTED",
"statusInfo": "DURATION_EXPIRED"
}
]
} | Property | Type | Description | Constraints | Default | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sessions | object[] | An array of QoS sessions for the given device. The array is empty if no sessions are found. | minItems: 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Array items:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bad Request Bad Request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Forbidden
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Not Found Not found
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unprocessable Entity Unprocessable Content
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Too Many Requests Too Many Requests
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
x-correlatorunknowncurl -X POST 'https://opengateway.masstack.com/v1/orgs/masmovil/quality-on-demand/retrieve-sessions' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"phoneNumber": "+123456789",
"device": {
"phoneNumber": "+123456789",
"networkAccessIdentifier": "123456789@domain.com",
"ipv4Address": {
"publicAddress": "203.0.113.0",
"publicPort": 59765
},
"ipv6Address": "2001:db8:85a3:8d3:1319:8a2e:370:7344"
}
}' Returns the information of the application and the associated client.
PATH PARAMETERS
OK Successful operation
{
"appOwnerId": "string",
"client": {
"appClientId": "string"
}
} | Property | Type | Description | Constraints | Default | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
appOwnerId | string | AppOwner identifier. | ||||||||||||
client | object | |||||||||||||
| ||||||||||||||
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X GET 'https://opengateway.masstack.com/v1/operative/applications/owner123/clients/client456' \
-H 'Accept: application/json' Creates an application and a client in AuthN.
PATH PARAMETERS
{
"appOwnerName": "string",
"appOwnerEmail": "user@example.com",
"appOwnerDescription": "string",
"appClientSecret": "string",
"appClientRedirectURL": [
"https://example.com"
],
"appClientDisplayName": "string",
"appClientSystemName": "string",
"appClientJwksUri": "https://example.com"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
appOwnerName* | string | The Aggregator Name plus the AppOwner ID. | ||
appOwnerEmail | string (email) | The AppOwner's contactMedium.emailAddress. | ||
appOwnerDescription* | string | Trading Name, organizationType and tax Number. | ||
appClientSecret* | string | Application Client Secret. | ||
appClientRedirectURL | string (uri)[] | Application redirectURL. | ||
appClientDisplayName* | string | Application commercialName. | pattern: ^[^_]*$ | |
appClientSystemName* | string | Application systemName. | ||
appClientJwksUri | string (uri) | Application Client jwks Uri. |
OK Successful operation
{
"appOwnerId": "string",
"client": {
"appClientId": "string"
}
} | Property | Type | Description | Constraints | Default | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
appOwnerId | string | AppOwner identifier. | ||||||||||||
client | object | |||||||||||||
| ||||||||||||||
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X POST 'https://opengateway.masstack.com/v1/operative/applications/066CRypjNZHx2WZMRk7g/clients/D6XWjIKFLYTN2XDNqdft' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"appOwnerName": "string",
"appOwnerEmail": "user@example.com",
"appOwnerDescription": "string",
"appClientSecret": "string",
"appClientRedirectURL": [
"https://example.com"
],
"appClientDisplayName": "string",
"appClientSystemName": "string",
"appClientJwksUri": "https://example.com"
}' Create a new product order by specifying the scope and purpose of the API to be consumed
PATH PARAMETERS
{
"scope": "string",
"purpose": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
scope* | string | Defines the scope of the API. | ||
purpose* | string | Defines the purpose of the API. |
Created Successful operation
Bad Request Problem with the client request
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Unauthorized Unauthorized
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Forbidden Client does not have sufficient permission.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Internal Server Error Server error
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Service Unavailable Service unavailable. Typically the server is down.
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
Request time exceeded. If it happens repeatedly, consider reducing the request complexity
{
"code": "string",
"title": "string",
"ref": "string",
"details": "string"
} | Property | Type | Description | Constraints | Default |
|---|---|---|---|---|
code* | string | code of the error | ||
title* | string | title of the error | ||
ref* | string | ref of the error | ||
details* | string | details of the error |
curl -X POST 'https://opengateway.masstack.com/v1/operative/applications/066CRypjNZHx2WZMRk7g/clients/D6XWjIKFLYTN2XDNqdft/product-orders' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"scope": "string",
"purpose": "string"
}'