UNPKG

@itentialopensource/adapter-glds_customerexperiencegateway

Version:

This adapter integrates with system described as: GLDS Customer Experience Gateway.

796 lines (795 loc) 347 kB
{ "openapi": "3.0.1", "info": { "title": "Customer Experience Gateway", "description": "## Get Started\n\nCustomer Experience Gateway is a REST API which provides third-party systems data on the state of a customer/subscriber so that aspects of that customer/subscriber can be managed in the third-party system. By providing some of the data BroadHub has about a customer/subscriber, third-party systems can eliminate some of the reasons a customer/subscriber would call or look for help online and provide a more personalized experience to them while reducing the number of calls that need to get to a customer service representative (CSR). API enables the ability to perform some BroadHub actions such as rescheduling and canceling work orders and refreshing equipment. \n\n## Features\nThe API will need to provide data for the following data points in BroadHub when requested by a third-party integrator. REST will need to be used for the data communication:\n\n- Subscriber Lookup\n- Customer/Subscriber Information\n - Payment Information\n - Promise-to-Pay (PTP) Information \n - Equipment Information \n - Soft-Disconnect Information \n- Home Lookup\n- Homes Passed Information\n- Equipment Actions\n- Work Order Information\n- Work Order Rescheduling/Canceling\n- Outage Information\n- Outage Actions (Create, Update, and Cancel)\n\n## Authentication\nCustomer Experience Gateway uses Basic Authentication. Basic authentication is a simple authentication scheme built into the HTTP protocol. The client sends HTTP requests with the Authorization header that contains the word Basic followed by a space and a base64-encoded string username:password. For example, to authorize as demo / p@55w0rd the client would send\n\n```json\nAuthorization: Basic ZGVtbzpwQDU1dzByZA==\n```\n\nNote: Because base64 is easily decoded, HTTPS/SSL must be used.\n\n## Use Case Diagrams\n\n[Diagrams](https://www.glds.com/files/ceg_diagrams.pdf)\n\n## Date and Time Formats\n\n- date – full-date notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6), for example, 2017-07-21\n- date-time – the date-time notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6), for example, 2017-07-21T17:32:28Z", "contact": { "name": "", "url": "https://www.glds.com/contact/", "email": "support@glds.com" }, "version": "v1.0" }, "servers": [ { "url": "https://bhas.glds.com:15920/customer-experience-gateway/v1" } ], "tags": [ { "name": "Subscriber", "description": "Customer/Subscriber Information" }, { "name": "Equipment", "description": "Integrators want to perform actions on equipment that CSR’s can perform in BroadHub to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system, and reduce the need for a subscriber to talk to a CSR to perform the equipment actions when calling into an operators Interactive Voice Response (IVR) system." }, { "name": "Home", "description": "Homes Passed Information" }, { "name": "Work Orders", "description": "Integrators want the ability to reschedule and cancel work orders to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system, and reduce the need for a subscriber to talk to a CSR to reschedule or cancel a work order when calling into an operators IVR system. Work Order types will need to be configurable in BroadHub to which types can be rescheduled and/or canceled via this API." }, { "name": "Outages", "description": "Integrators want the ability to declare or cancel an outage in BroadHub to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system. Some integrators will be the source of the outage information, so the ability to automatically pass that information to BroadHub eliminates someone manually having to create or cancel an outage in BroadHub. BroadHub will need to be able to create outages based on a subscriber BroadHub account # or list of subscribers BroadHub account #’s and provide a unique identifier for the outage created back to the integrator so that integrator can later update or cancel the outage if needed using the unique identifier." }, { "name": "Other", "description": "Access other data" } ], "paths": { "/subscriber/search": { "get": { "tags": [ "Subscriber" ], "summary": "Lookup subscriber", "description": "Lookup subscriber", "operationId": "SubscriberLookup", "parameters": [ { "name": "ExternalID", "in": "query", "description": "External ID", "schema": { "maxLength": 40, "type": "string", "minLength": 1 } }, { "name": "PhoneNumber", "in": "query", "description": "Unformated phone number without country code", "schema": { "maxLength": 15, "type": "string", "example": "7606021916", "pattern": "^[0-9]+", "minLength": 1 } }, { "name": "DL", "in": "query", "description": "Driver's license", "schema": { "maxLength": 16, "type": "string", "minLength": 1, "pattern": "^[A-Z0-9- ]+" } }, { "name": "SSN", "in": "query", "description": "Social security number", "schema": { "maxLength": 16, "type": "string", "minLength": 1, "pattern": "^[A-Z0-9- ]+" } }, { "name": "LookupCode", "in": "query", "description": "PPV Lookup Code, unique per subscriber record", "schema": { "maxLength": 10, "type": "string", "minLength": 1 } }, { "name": "Authorization", "in": "header", "required": true, "schema": { "type": "string", "default": "Basic dGVzdDpURVNU" } } ], "responses": { "200": { "description": "Successful Operation.", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "Account": { "type": "string", "maxLength": 9, "minLength": 6, "description": "Subscriber Account #", "example": "123456203", "pattern": "^[0-9]+" }, "AccountName": { "maxLength": 255, "type": "string", "description": "Account Name (first and last name when residential/the business name when commercial)", "example": "Roxanne Hunn" }, "ServiceAddress": { "maxLength": 765, "type": "string", "description": "Service Address", "example": "721 Kimball Terrace San Ysidro CA 94636-9101" } }, "required": [ "Account", "AccountName", "ServiceAddress" ] } }, "examples": { "example": { "value": [ { "Account": "123456203", "AccountName": "Roxanne Hunn", "ServiceAddress": "721 Kimball Terrace San Ysidro CA 94636-9101" } ] } } } } }, "400": { "description": "The request was malformed", "content": {} }, "401": { "description": "Unauthorized", "content": {} }, "404": { "description": "Not Found", "content": { "Subscriber Not Found": { "example": { "errors": [ { "status": "404", "errorCode": "2155", "errorMessage": "Subscriber Not Found" } ] } } } }, "500": { "description": "Internal Server Error", "content": {} } }, "security": [ { "basicAuth": [] } ] } }, "/subscriber/{ACCOUNT}": { "get": { "tags": [ "Subscriber" ], "summary": "Get subscriber", "description": "Get subscriber", "operationId": "GetSubscriber", "parameters": [ { "name": "ACCOUNT", "in": "path", "description": "Subscriber Account #", "required": true, "schema": { "maxLength": 9, "minLength": 6, "type": "string", "pattern": "^[0-9]+", "example": "123456203" } }, { "name": "Authorization", "in": "header", "required": true, "schema": { "type": "string", "default": "Basic dGVzdDpURVNU" } } ], "responses": { "200": { "description": "Successful Operation.", "content": { "application/json": { "schema": { "type": "object", "properties": { "Account": { "maxLength": 9, "minLength": 6, "type": "string", "description": "Subscriber Account #", "example": "123456203" }, "SubscriberStatus": { "type": "object", "description": "Subscriber Status", "required": [ "Code", "Name", "BaseCustStatus" ], "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "ACT" }, "Name": { "maxLength": 40, "type": "string", "example": "Active" }, "BaseCustStatus": { "type": "integer", "description": "Value | Description \n ---------|---------- \n173 | Active\n174 | Inactive\n177 | Inactive Written Off\n237 | Inactive Collections", "enum": [ 173, 174, 177, 237 ] } } }, "SubscriberType": { "type": "object", "description": "Type (residential/commercial)", "required": [ "Code", "Name" ], "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "RES" }, "Name": { "maxLength": 40, "type": "string", "example": "Residential" } } }, "AccountName": { "maxLength": 255, "type": "string", "description": "Account Name (first and last name when residential/the business name when commercial)", "example": "Roxanne Hunn" }, "FirstName": { "type": "string", "maxLength": 40, "description": "Empty for commercial account type. Field is populated starting from BH v2.5.93.0", "example": "Roxanne" }, "SecondName": { "type": "string", "description": "Empty for commercial account type. Field is populated starting from BH v2.5.93.0", "maxLength": 20 }, "LastName": { "type": "string", "maxLength": 80, "description": "Required for residential account type subscriber, empty for commercial type. Field is populated starting from BH v2.5.93.0", "example": "Hunn" }, "PhoneNumbers": { "type": "array", "items": { "type": "object", "properties": { "PhoneNumber": { "maxLength": 20, "type": "string", "description": "Phone Number", "example": "(760) 385-4792" }, "PhoneNumberType": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "HOM" }, "Name": { "maxLength": 40, "type": "string", "example": "Home" } }, "description": "Phone Number Type" } } } }, "BillingEmail": { "maxLength": 255, "type": "string", "description": "Billing email", "example": "name@provider.com" }, "ServiceAddress": { "required": [ "DropConnected", "Franchise", "HeadEnd", "Hub", "PropertyType", "TechRegion", "VoIPRateCenter", "Wired" ], "type": "object", "properties": { "FullAddress": { "maxLength": 765, "type": "string", "example": "721 Kimball Terrace San Ysidro CA 94636-9101" }, "City": { "maxLength": 40, "type": "string", "example": "San Ysidro" }, "State": { "maxLength": 3, "type": "string", "example": "CA" }, "ZIP": { "maxLength": 20, "type": "string", "description": "Zip Code", "example": "94636" }, "ZIPPlus4": { "maxLength": 20, "type": "string", "description": "Zip Plus 4", "example": "94636-9101" }, "BlockFIPS": { "maxLength": 15, "type": "string", "description": "15-digit census block FIPS code", "example": "060730176041014" }, "Franchise": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "001" }, "Name": { "maxLength": 40, "type": "string", "example": "South Park1" } }, "description": "Franchise" }, "PropertyType": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "RES" }, "Name": { "maxLength": 40, "type": "string", "example": "Residential" } }, "description": "Property Type" }, "HeadEnd": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "HTS" }, "Name": { "maxLength": 40, "type": "string", "example": "Hits" } }, "description": "Head End" }, "Hub": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "HTS" }, "Name": { "maxLength": 40, "type": "string", "example": "Hits" } }, "description": "Hub" }, "Node": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "005" }, "Name": { "maxLength": 40, "type": "string", "example": "005" } }, "description": "Node" }, "VoIPRateCenter": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "DRC" }, "Name": { "maxLength": 40, "type": "string", "example": "Default" } }, "description": "VoIP Rate Center" }, "DropTag": { "maxLength": 10, "type": "string", "description": "Drop Tag", "example": "LM89546" }, "Wired": { "type": "boolean", "description": "Wired" }, "DropConnected": { "type": "boolean", "description": "Drop Connected" }, "TechRegion": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "TRD" }, "Name": { "maxLength": 40, "type": "string", "example": "Default Tech Region" } }, "description": "Tech Region" }, "SalesArea": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "DFT" }, "Name": { "maxLength": 40, "type": "string", "example": "Default Sales Area" } }, "description": "Sales Area" }, "ManagementArea": { "required": [ "Code", "Name" ], "type": "object", "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "DFT" }, "Name": { "maxLength": 40, "type": "string", "example": "Default Management Area" } }, "description": "Management Area" } }, "description": "Service Address" }, "Franchise": { "type": "object", "description": "Franchise", "required": [ "Code", "Name" ], "properties": { "Code": { "maxLength": 3, "minLength": 3, "type": "string", "example": "001" }, "Name": { "maxLength": 40, "type": "string", "example": "South Park1" } } }, "TimeZone": { "type": "object", "description": "Subscriber Time Zone", "properties": { "ID": { "type": "integer", "description": "Time zone ID", "example": 75 }, "BIAS": { "type": "integer", "description": "Time zone BIAS", "example": 480 }, "Name": { "maxLength": 40, "type": "string", "description": "Time zone name", "example": "Pacific Standard Time (Mexico)" }, "Description": { "maxLength": 40, "type": "string", "description": "Time zone description", "example": "(UTC-08:00) Baja California" } }, "required": [ "ID", "BIAS", "Name", "Description" ] }, "PaymentPlan": { "type": "string", "enum": [ "Pre-paid", "Post-paid" ] }, "PaymentTypes": { "type": "array", "description": "Supported Payment Types. Field is populated starting from BH v2.5.93.0", "items": { "type": "object", "properties": { "ID": { "type": "integer" }, "Code": { "type": "string", "minLength": 3, "maxLength": 3 }, "Name": { "type": "string", "maxLength": 30, "minLength": 1 } }, "required": [ "ID", "Code", "Name" ] } }, "DOB": { "type": "string", "description": "DOB of the Subscriber", "format": "date", "example": "1975-03-09" }, "WinScoreRiskFactor": { "type": "string", "description": "WinScore risk factor", "example": "RiskFactor" }, "ParentAccounts": { "type": "array", "description": "Parent accounts", "items": { "type": "object", "properties": { "Account": { "maxLength": 9, "minLength": 6, "type": "string", "description": "Subscriber Account #", "example": "123456201" }, "AccountName": { "maxLength": 255, "type": "string", "description": "Account Name (first and last name when residential/the business name when commercial)", "example": "Parent Account Name" } }, "required": [ "Account", "AccountName" ] } }, "ChildAccounts": { "type": "array", "description": "Child accounts", "items": { "type": "object", "properties": { "Account": { "maxLength": 9, "minLength": 6, "type": "string", "description": "Subscriber Account #", "example": "123456204" }, "AccountName": { "maxLength": 255, "type": "string", "description": "Account Name (first and last name when residential/the business name when commercial)", "example": "Child Account Name" } }, "required": [ "Account", "AccountName" ] } }, "SoftDisconnect": { "type": "object", "description": "Soft-Disconnect information", "properties": { "SDStatus": { "type": "string", "description": "Soft-Disconnect Status", "enum": [ "Active", "Pending" ] }, "SDDate": { "type": "string", "description": "Soft-Disconnect Date", "format": "date", "example": "2020-12-12" } }, "required": [ "SDStatus", "SDDate"