# Sample Integration Flow
This guide demonstrates a typical end-to-end flow for integrating with the Netomnia Wholesale Gateway API.
# 1. Check Service Availability
GET /WholesaleGateway/v1.0/gateway/service-availability?address=%7B"id":"10025559646","type":"UPRN"%7D
Headers:
X-Request-ID: req-1
X-Conversation-ID: conv-1
Tenant: YOUR_TENANT
Authorization: Bearer YOUR_OAUTH_TOKEN
Response:
{
"address": {
"identifier": { "id": "10025559646", "type": "UPRN" },
"name": "Unit H",
"streetNumber": "1",
"streetName": "The Courtyard",
"locality": "Tewkesbury Business Park",
"city": "Tewkesbury",
"postcode": "GL20 8GD",
"country": "UK"
},
"serviceSpecifications": [
{
"id": "fttp",
"name": "FTTP",
"serviceCharacteristics": [
{
"name": "LINE_PROFILE",
"values": ["55/55", "80/20", "100/100"]
},
{
"name": "AUTHENTICATION_AGENT",
"values": ["DHCPRelayAgent"]
},
{
"name": "MINIMUM_SPEED",
"values": ["100", "200", "500"]
}
]
}
],
"siteInformation": {
"newLine": true,
"installationType": "STANDARD",
"enniId": "ENNI-001",
"siteName": "Site A",
"siteLocation": "Location B"
}
}
# 2. Book an Appointment
POST /WholesaleGateway/v1.0/gateway/appointments
Headers:
X-Request-ID: req-2
X-Conversation-ID: conv-1
Tenant: YOUR_TENANT
Authorization: Bearer YOUR_OAUTH_TOKEN
Body:
{
"id": 159,
"address": { "id": "10025559646", "type": "UPRN" },
"serviceSpecification": { "id": "fttp" },
"purpose": "PROVIDE",
"timeslot": {
"timeslotStartDateTime": "2025-07-16T08:00:00.000Z",
"timeslotEndDateTime": "2025-07-16T13:00:00.000Z"
}
}
Response:
{
"id": 159,
"supplierReference": "APPT-2025-001",
"address": { "id": "10025559646", "type": "UPRN" },
"serviceSpecification": { "id": "fttp", "name": "FTTP" },
"purpose": "PROVIDE",
"timeslot": {
"timeslotStartDateTime": "2025-07-16T08:00:00.000Z",
"timeslotEndDateTime": "2025-07-16T13:00:00.000Z",
"classification": "WEEKDAY_AM",
"standard": true
},
"expiryDateTime": "2025-07-15T23:59:59.000Z"
}
# 3. Submit an Order
POST /WholesaleGateway/v1.0/gateway/service-orders
Headers:
X-Request-ID: req-3
X-Conversation-ID: conv-1
Tenant: YOUR_TENANT
Authorization: Bearer YOUR_OAUTH_TOKEN
Body:
{
"id": 127,
"orderType": "NEW",
"tenant": "YOUR_TENANT",
"address": { "id": "10025559646", "type": "UPRN" },
"serviceOrderItem": {
"serviceSpecification": { "id": "fttp" },
"serviceCharacteristics": [
{ "name": "LINE_PROFILE", "value": "55/55" },
{ "name": "AUTHENTICATION_AGENT", "value": "DHCPRelayAgent" },
{ "name": "MINIMUM_SPEED", "value": "100" },
{ "name": "END_USER_TYPE", "value": "RESIDENTIAL" }
]
},
"primaryContact": { "name": "Jane Doe", "email": "jane@doe.com", "phoneNumber": "01234 567890" },
"appointmentReservationId": 159,
"requestedCompletionDate": "2025-07-28"
}
Response: Status Code: 202 Accepted
The order has been accepted for processing. No response body is returned.
Note: Order acknowledgment and status updates will be sent via KCI (Keep Customer Informed) events. Monitor your webhook endpoint for order status notifications.
# 4. Receive KCI/Webhook Events
Your endpoint will receive webhooks for order status updates via KCI (Keep Customer Informed) events. Monitor your webhook endpoint for order status notifications (see Webhooks).