
Developer Guide for the Globalnet API
This guide includes help for developers targeting the Globalnet API. It is intended to give an overview of the API features, the expected order of calls and any other business rules associated with the API. To see the full details for each API method and test those methods, see the APIs section.
Only registered and approved users of the Globalnet website may access the API. If you do not already have a website account you must first register using the following sites:
https://globalnet.satcomglobal.com (production website)
https://gntest.satcomglobal.com (test website)
This registration should be in place before attempting to register and subscribe for API access as described below.
New documentation: SIM activation worked example
Change Log
The change log for the Globalnet API
Registration, Subscription, and Authorisation
All developer users must register to use the API features. Registration is described in the Developer Guide. To use the Globalnet API you need an active subscription to the Globalnet product. The subscription process is described in the Developer Guide. Authorisation for the Globalnet API requires you to supply your subscription key in the HTTP request header:
Ocp-Apim-Subscription-Key: your-subscription-keyGlossary of API Resource Names
Within the Globalnet API, the following names are used to describe resources in the system:
Equipment: a SIM or other item. Examples include an FBB SIM, or an Aura VSAT terminal.
Client: a client company, billable entity, or location for equipment. Used to group equipment. Examples include: ship management company, ship owner, ship.
Activation: a SIM activation product.
Voucher: a voucher product used to credit a prepaid SIM balance.
SIM Top-up: application of a prepaid voucher product to a SIM.
Watch & Alert: a monitor configured to check service usage for an equipment item. The monitor sends email alerts when usage reaches or exceeds the configured threshold. Usage that may be monitored includes: money, data volume, voice, and SMS text messages.
CDR: call detail record. Details of usage on a SIM or equipment item, for example: voice calls, data usage.
Hierarchy of items in the system: Equipment items are owned by a client. Clients have a hierarchy where a client may own zero or more sub-clients. There are usually 3 clients for any ship: [Management company] > [Billable entity] > [Ship].
Note: in the examples shown throughout this page the URI path /api is used as a placeholder for the root URI path of the API. This might be for example:
https://sg-apim-rn.azure-api.net/globalnet-uat/api/v1/(test environment)
https://sg-apim-rn.azure-api.net/globalnet/api/v1/ (production environment)
The API details show the full URI for each request.
Data Access Controls
The data available to each API user is controlled by their configured user account. When authenticating with the API, the client application supplies an API key (as described elsewhere), this key maps to a user in the Globalnet system. Each user is configured for access to one or more clients in the system and their associated equipment. By default, queries against the API methods will return data for the user's primary client. If data for another client is required, override the default client by supplying a client Id parameter in the query. For example:
// Get equipment for client Id 12345
GET /api/equipment?clientId=12345
// Get vouchers for client Id 12345
GET /api/products?clientId=12345&type=voucher
To list the clients accessible to the current login use:
GET /api/meta/user
Example response:
{
"Email": "example@user.co.uk",
"Clients": [
{
"Id": 999999,
"Name": "Example Company XYZ",
"IsDefault": true
},
{
"Id": 8888888,
"Name": "Example Company ABC",
"IsDefault": false
}
]
}Equipment
List Equipment
List equipment items managed by the system.
GET /api/equipment
This request supports paging and filtering on client Id, client name (with partial matching) and equipment identifier (e.g. ICCID for a SIM). Some examples:
// Get the first 100 equipment items
GET /api/equipment?page=1&pageSize=100
// Get equipment on client 'ShipA'
GET /api/equipment?client=ShipA
// Get equipment with identifier '898789151616156'
GET /api/equipment?identifier=898789151616156
Example response:
{
"ClientId": 12345,
"ClientName": "Client XYZ",
"Filter": {
"IdentifierFilter": null,
"ClientNameFilter": null,
"CustomerReferenceFilter": null
},
"PageNumber": 1,
"PageSize": 10,
"SortOrder": "ClientName",
"SortDirection": "Ascending",
"TotalRows": 90,
"Equipment": [
{
"Id": 556789,
"ClientId": 456788,
"ClientName": "Example Ship Z",
"ClientPath": "[Company X] > [Company Y] > [Example Ship Z]",
"EquipmentTypeId": 117,
"EquipmentTypeName": "Iridium Certus",
"IsPrepaid": false,
"Identifier": "8988169771000088888",
"Iccid": "8988169771000088888",
"MsIsdnList": [ "881670000001","8816700000002" ],
"Tags": null,
"Status": "Activated",
"IsDataSuspended": false,
"StartDate": "2019-06-25T00:00:00Z",
"EndDate": "2099-12-31T23:59:59.997Z",
"OrderId": 0,
"CustomerReference": null
},
...]
}Get Equipment Details
Details for an equipment item are retrieved using the equipment Id or ICCID of the item:
// get equipment item by unique Id
GET /api/equipment/{id}
e.g.
GET /api/equipment/12345
The equipment Id used in the query example above is that returned by the equipment listing method.
// get equipment item by ICCID
GET /api/equipment/{iccid}
e.g.
GET /api/equipment/898789151616156
Example response:
{
"Id": 341277,
"ClientId": 82640,
"ClientName": "Example Ship Y",
"CustomerRef": "On behalf of Example Ship Y (INV1111111)",
"TopLevelClientId": 22222,
"TopLevelClientName": "Top Leve Client",
"Status": "Activated",
"StartDate": "2015-01-13T00:00:00Z",
"EndDate": "2099-12-31T23:59:59.997Z",
"EquipmentTypeId": 1,
"EquipmentTypeName": "Iridium SIM Card",
"Identifier": "88163334445",
"IccId": "898816932500111222",
"Imei": "901033250123456",
"Imsi": "901033250123456",
"MasterMsisdn": "88163334445",
"IsPrepaid": true,
"AvailableActions": [
"Suspend",
"GetBalance",
"RefreshBalance"
]
}The AvailableActions property indicates the operations supported by the equipment item. Suspend indicates that the SIM may be suspended, GetBalance indicates a prepaid SIM where the balance is available for query, RefreshBalance indicates the balance value may be refreshed by a call to the operator service.
Get Vouchers for a Prepaid SIM
For prepaid SIMs the voucher products that can be applied to the equipment may queried by equipment id or equipment ICCID:
GET /api/equipment/{iccid}/vouchersExample output:
{
"ClientId": 1234567,
"ClientName": "Example client",
"Products": [
{
"Id": 164,
"Name": "30 Day Extension",
"Category": "Voucher",
"ActivationType": null,
"SimActivationUrl": null,
"Announcement": "Valid on STD & Iridium Go! Plans",
"Price": 99.99,
"Deposit": 0.0,
"Currency": "USD"
},
...]Get and/or Refresh Equipment Balance
For prepaid SIMs the equipment balance may queried by equipment id or equipment ICCID:
GET /api/equipment/{id}/balance
or
GET /api/equipment/{iccid}/balanceExample output:
{
"EquipmentId": 55678,
"Balance": 5960.00,
"ExpiryDate": "2021-12-22T23:59:59.997Z",
"LastBalanceCheckDate": "2021-07-16T00:11:01.96Z",
"UnitsExpiring": null,
"UnitsExpiryDate": null
}To get the latest balance from the operator system use the refresh option. Note this option may take some seconds to return due to latency contacting the operator. For example:
GET /api/equipment/{id}/balance?refresh=trueSuspend and Resume SIM Equipment
If the SIM equipment supports the Suspend action the following command may be used:
PATCH /api/equipment/{id}request body:
{
"action": "suspend"
}To resume (un-suspend) a SIM equipment item use the following:
PATCH /api/equipment/{id}request body:
{
"action": "resume"
}SIM Equipment High Usage Alerts
The system allows the user to configure one or more monitors to check service usage for an equipment item. The monitor sends email alerts when usage reaches or exceeds the configured threshold. Usage that may be monitored includes: money, data volume, voice, and SMS text messages. Watch and alert settings for each SIM are accessed with the following call:
GET /api/equipment/{id}/watchalertsExample response:
[
{
"DisplayName": "89111111112222",
"Id": 999999,
"EquipmentId": 123456,
"AutoResume": false,
"Threshold": 500.00,
"AdditionalThreshold": 0.00,
"CurrentBalance": 3.20,
"StartDate": "2021-07-01T00:00:00Z",
"DateDeleted": "0001-01-01T00:00:00",
"ResetFrequency": 1,
"RecipientAddresses": "user1@eaxmple.com, user2@example.com",
"WatchTitle": "500.0 MB - Watch and Alert",
"MeasurementUnit": "MB",
"PercentageUsed": 0.0,
"Status": "OK",
"WatchAction": "Watch and Alert",
"Reset": "Reset each month"
}
]
SIM Top-up
To apply a voucher product to a prepaid SIM use the following:
POST /api/equipment/{id}/simtopups
or
POST /api/equipment/{iccid}/simtopupsrequest body:
{
// product Id of the voucher product to apply to the SIM
"productId": 31,
"quantity": 1,
"CustomerReference": "Your reference here"
}The response body provides the new order Id for the SIM top-up:
{
"OrderId": 00001
}The product listing for prepaid vouchers is available using the following call; this gives the product Id to use for each prepaid voucher product.
GET /api/products?type=voucher
This returns the list of voucher products available.
Order History
To view your order history and the status of any recent orders use the following call:
GET /api/orders
This call takes an optional ClientId filter which defaults to the primary client associated with your account.
Example response:
{
"ClientId": 11111,
"ClientName": "Example Client",
"Page": 1,
"PageSize": 10,
"Orders": [
{
"Id": 12345,
"Date": "2021-11-23T10:21:58.91Z",
"ClientId": 11111,
"ClientName": "Example Client",
"LoginId": 200000,
"LoginName": "user@example.com",
"CustomerReference": "",
"Status": "Processing",
"NetTotal": 0.0000,
"SalesTax": 0.0000,
"GrandTotal": 0.0000,
"Currency": "USD",
"InvoiceId": null
},
...]
}Order details are available using the call:
GET /api/orders/{id}This gives full order details with line items, checkout details, etc.
Invoice History
To view your invoice history use the following call:
GET /api/invoices?year=2021&month=8
This call takes an optional ClientId filter which defaults to the primary client associated with your account.
Example response:
{
"ClientId": 11111,
"ClientName": "Example Client",
"Invoices": [
{
"Id": 9955588,
"InvoiceDate": "2020-01-08T00:00:00Z",
"DueDate": "2020-03-08T00:00:00Z",
"InvoiceNumber": "FF01201111",
"Amount": 60.0000,
"Currency": "USD",
"BillingCompany": "Example",
"VesselName": null,
"AccountNumber": "C000000"
},
...]
}Invoice details are available using the call:
GET /api/invoices/{id}You may download a PDF version of the invoice using the following call:
GET /api/invoices/{id}/pdfSIM Activations
SIM activation within Globalnet is an asynchronous process: the client submits an activation request, the service queues the request for processing. The order Id of the purchase is returned to the client. As background processing of the SIM activation request proceeds, the status of the order may be retrieved using this order Id.
The Globalnet API has specific request body types and URIs for the different SIM types supported by the system.
We also have a page showing a worked example for a SIM activation using the Globalnet API
SIM Activation Products
The SIM activation product list is queried using this call:
GET /api/products?type=activation
The response is grouped by product group. The properties for each activation product include the URL path to the activation endpoint for the product. Example response:
{
"ClientId": 10000,
"ClientName": "Example company",
"ProductGroups": [
{
"Id": 12,
"Name": "Inmarsat BGAN",
"Announcement": null,
"Products": [
{
"Id": 26,
"Name": "BGAN Postpaid Flex 1 GB",
"Category": "Activation",
"ActivationType": "InmarsatBganPostpaid",
"SimActivationUrl": "api/activations/inmarsat/bgan",
"Announcement": "",
"Price": 0.0,
"Deposit": 0.0,
"Currency": "USD"
},
{
"Id": 29,
"Name": "BGAN Postpaid Flex 10 GB",
"Category": "Activation",
"ActivationType": "InmarsatBganPostpaid",
"SimActivationUrl": "api/activations/inmarsat/bgan",
"Announcement": "",
"Price": 0.0,
"Deposit": 0.0,
"Currency": "USD"
}]
},...]
}SIM Activations for a Specific SIM
If you have a SIM number (ICCID), you may access the list of suitable SIM activation products for that SIM using the following call:
GET /api/products/iccid/{iccid}?clientId={clientId}SIM Activation Product Options
The product features and options may be accessed using the following call:
GET /api/products/{id}/optionsexample response:
{
"ProductId": 240,
"ProductName": "FleetBroadband Standard Monthly Plan",
"ClientId": 10000,
"ClientName": "Example company",
"ActivationType": "InmarsatFbbPostpaid",
"StandardFeatures": [
"Telephony",
"Sms",
"Voicemail",
"StandardIp"
],
"OptionalFeatures": [
"Fax",
"Isdn",
"Streaming"
]
}The response above indicates that the Inmarsat FBB product (Id 240) requires the Telephony, Sms, Voicemail, and StandardIp features to be selected (set to true) and the Fax, Isdn, and Streaming features are optional. The Inmarsat BGAN SIM activation example below shows the Features property set with Telephony, etc. selected.
Certain SIM activation features have values that must be selected from a list of valid values. For example, Inmarsat SIM activations require you to supply the IndustryCode property. To retrieve the list of valid values use the following call:
GET /api/products/{product-id}/options/industrycodesexample response:
[
"Agriculture",
"Aid & NGO",
"Banking",
"Construction",
...]
Iridium Prepaid Activations
For an Iridium prepaid activation you must include a valid prepaid voucher. The list of valid prepaid vouchers for the activation available through the following method:
GET /api/products/{product-id}/options/prepaidvouchers
{product-id} is the activation product Idexample response:
[
{
"ProductId": 12345,
"Name": "Pre-paid SIM - AFRICA + 300 min/12 months validity - USD 210.53",
"Value": "Pre-paid SIM - AFRICA + 300 min/12 months validity - USD 210.53;IRDPREPAID-AFRICAPREPAYR:300:1:0;210.53"
},
{
"ProductId": 123450,
"Name": "Pre-paid SIM - GLOBAL + 300 min/12 months validity - USD 518.92",
"Value": "Pre-paid SIM - GLOBAL + 300 min/12 months validity - USD 518.92;IRDPREPAID-STDPREPAYNR:300:1:0;518.92"
},
{
"ProductId": 1234500,
"Name": "Pre-paid SIM - GO!+ 1000 mins/12 months validity - USD 648.65",
"Value": "Pre-paid SIM - GO!+ 1000 mins/12 months validity - USD 648.65;IRDPREPAID-GOPREPAY:500:1:0;648.65"
},
...]
The activation request body would include a PrepaidVoucherId property set to the "ProductId" of one of the options returned. For example:
"PrepaidVoucherId": 123450
The full list of calls available for the various activation options are listed in the API documentation under the Product Options tag.
Contact Details
Each activation request requires a valid set of contact details, including country Id. A list of valid CountryId values for the ContactDetail is returned by the method:
GET /api/countries
Example response:
[
{
"Id": 1,
"Iso3Code": "AFG",
"Name": "Afghanistan"
},
{
"Id": 2,
"Iso3Code": "ALB",
"Name": "Albania"
},
{
"Id": 3,
"Iso3Code": "DZA",
"Name": "Algeria"
},
...]
Inmarsat BGAN SIM Activation example
Use the following call to request a BGAN SIM activation:
POST /api/activations/inmarsat/bgan
request body:
{
"Header": {
"LoginId": 12345,
"ClientId": 112233,
"ProductId": 1000,
"CustomerReference": "Your reference",
"FutureActivationDate": null
},
"Iccid": "89123456789012345",
"ContactDetail":{
"Attention": null,
"StreetAddress": "Address line 1",
"Postcode":"ZIPCOD",
"City":"London",
"County":"",
"CountryId": 1,
"Email": "youremail@example.com",
"Telephone": "01234 5678910"
},
"Features" : {
"Telephony" : true,
"Sms" : true,
"Voicemail" : true,
"StandardIp" : true,
"LowSpeedData" : true,
"Fax" : false,
"Isdn" : false,
"DataStreaming": null
},
"Terminal": {
"Imei": null,
"Manufacturer": "Cobham",
"Model": "BGAN 500",
"SerialNumber": "12300000111"
},
"Firewall": {
"OpenWebAccess": false,
"RequestInfrastructureSupport": false,
"AllowedApplications": [ "IPSignature 3", "IPSignature 4", "Web Access - http/https/dns only (at your own risk)" ],
"Requirements":[
{
"Description": "ESET Updates",
"Ports": "4444,4445",
"IpAddresses": "192.168.0.1,192.168.0.2"
}]
},
"WatchAlerts": [
{
"WatchType" : "MoneyUsd",
"ActionType" : "Alert",
"Threshold" : 150.00,
"Recipients" : ["recip1@testemail.com", "recip2@testemail.com"]
},
{
"WatchType" : "DataMb",
"ActionType" : "Suspend",
"Threshold" : 1000.0,
"Recipients" : ["recip1@testemail.com", "recip2@testemail.com"]
}
],
"ServicePlan": "Monthly",
"IndustryCode": "Travel and Tourism"
}Example response:
{
"OrderId": 10000
} You can see the status of the order by querying the order details by order Id:
GET /api/orders/{id}Adding a second SIM to an Inmarsat FBB SIM package
Certain Inmarsat FBB SIM packages allow a second SIM to be added to the original SIM billing package. To add a second SIM, you will need the details of the primary SIM and the SIM group Id. To access the list of primary SIM numbers that may have a second SIM added use this call:
GET /api/activations/inmarsat/fbbprimarysims?productId={id}The product Id selected must be for an Inmarsat FBB Allowance activation type product. Example response:
[
{
"ProductId": 245,
"ProductName": "FB 5GB Volume Monthly 2019",
"ClientId": 10000,
"VesselName": "Example Ship",
"GroupId": "GRP00543210S",
"EquipmentId": 12345,
"Iccid": "898709920888888888",
"Msisdn": "870773555555"
},
...]
This should give you all the details required for the primary SIM: equipment Id, ICCID and SIM group Id.
Equipment IMEI Validation
You may check that the IMEI you have for the equipment item is valid for the activation product you intend to activate:
POST /api/activations/validateiccid
request body:
{
"ClientId": 10000,
"ProductId": 245,
"Imei": "012345678901234"
}
example response:
{
"Messages": [ "Imei is valid" ]
}
SIM Number (ICCID) Validation
You may check that the ICCID you have is valid for the activation product you intend to activate:
POST /api/activations/validateiccid
request body:
{
"ClientId": 10000,
"ProductId": 245,
"Iccid": "898709920888888888"
}
example response:
{
"Messages": [ "Iccid: SIM has already been used." ]
}