Eligibility
GTAF MAY issue the following eligibility request to check whether a user is eligible to purchase a plan.
GET DPA/{userKey}/Eligibility/{planId}?key_type={CPID,MSISDN}
Note that planId
is the unique identifier for the plan that can be used to
purchase the plan on behalf of the user (See Data Purchase).
If planId
is not specified the DPA MUST return all plans purchasable by that
user.
Error cases lists the responses expected from DPA in case of an error. Additionally, the DPA SHALL return an error in the following error cases:
- The DPA returns a 400 BAD REQUEST error code indicating to GTAF that
planId
is invalid. - The DPA returns a 409 CONFLICT error code indicating that
planId
is incompatible with the user's data plan.
Otherwise, the DPA SHALL return a 200-OK response. The format of a successful EligibilityResponse is:
{
"eligiblePlans":
[
{
"planId": string, // Plan identifier. Can be used to
// refer to the plan during
// offers, etc. (req.)
}
]
}
When the request includes a planId
the response includes only that
plan. Otherwise, the list includes all the plans the user is eligible to
purchase. In the case where planId
is empty and the DPA does not support
returning the list of eligible plans it MUST return a 400 BAD REQUEST error.
Android 5G Experiences
GTAF enables carriers to share meteredness status per connection type for subscribers. The information can be pulled periodically by GTAF or carriers can push the information based on internal triggers.
Pull API
Device can pull the meteredness information via GTAF using the following:
GET DPA/{userKey}/planStatus?key_type={userKey}&client_id=AndroidSystemInfo
Note that DPA (Data Plan Agent) represents an API GW or Entitlement server in carrier's network.
userKey is the authentication token established during the initial auth phase as defined here.
client_id is AndroidSystemInfo
Meteredness status is provided as an ENUM
DPA shall return 200 OK response and include planInfoPerClient Error handling for DPA is defined here
In the pull model, GTAF acts as a client and validates DPA's SSL certificate. GTAF authenticates itself to DPA using OAuth procedure defined here.
Push API
Carrier can also push the meteredness information using following based on a trigger event e.g. change of price plan, etc.
POST https://mobiledataplansharing.googleapis.com/v1/operators/12345/clients/AndroidSystemInfo/users/abcdef/planStatus
DPA shall include planInfoPerClient in the body of the message. Error responses from GTAF are defined here
In the push mode, GTAF authenticates incoming requests from DPA using the Google Cloud OAuth2 server. The incoming requests must be authenticated as a service account that has been whitelisted in the ISP Portal for the ASN the DPA represents. Also, refer to the integration guide here for further details.